我想知道我想做的事情是否可行。我有一个由 xml 驱动的单元测试,如下所示:
[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"]
,我得到 aColumn 'MyComplexRow' does not belong to table TestMember.
因为它不是“标量”,而是有很多维度......
那么,有什么办法可以欺骗 Visual Studio 让他知道他正在处理现有类的序列化实例?就像,也许扩展一个现有的类。
我知道我可以将它全部包装在 CDATA 中,然后对其进行反序列化,但是,它并不那么优雅。
谢谢 !