我想知道我想做什麼是可能的。我有一個單元測試由XML驅動的,如下:使用複雜的序列化對象在Visual Studio上進行數據驅動測試
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"|DataDirectory|\\MyFile.xml",
"TestMember",
DataAccessMethod.Sequential)]
[DeploymentItem("MyFile.xml")]
[TestMethod]
public void Hello()
{
...
}
其中myfile.xml中看起來是這樣的:
<TestMembers>
<TestMember>
<Name>Hello</Name>
<id>1234</id>
<MyComplexRow>
<MySerializedInstanceOfClass>
<BooleanProperty>true</BooleanProperty>
<IntProperty>8</IntProperty>
<MySerializedInstanceOfAnotherClass>
<int>23</int>
<bool>false</bool>
<double>8.0</double>
</MySerializedInstanceOfAnotherClass>
</MySerializedInstanceOfClass>
</MyComplexRow>
</TestMember>
</TestMembers>
現在的問題是,訪問TestContext.DataRow["Name"]
工作正常,但我不能訪問TestContext.DataRow["MyComplexRow"]
,我得到一個Column 'MyComplexRow' does not belong to table TestMember.
,因爲它不是一個「標」,但有許多方面...
那麼,有沒有什麼辦法,我可以欺騙的Visual Studio,讓他知道他處理的一個序列化實例現有課程?就像,擴展現有的類也許。
我知道我可以將它全部包裝在CDATA中,然後將其反序列化,但是,它並沒有那麼優雅。
謝謝!