过去几个小时我无法在互联网上找到任何东西。情况如下:我想测试我编写的解析器,为此我有编写数据驱动单元测试的愿望。我的XML看起来如下:
<Test>
<ParseTest>
<Case>
<uri>somestring</uri>
<key>somestring</key>
<value>somestring</value>
</Case>
<Case>
<uri>somestring</uri>
<key>somestring</key>
<value>somestring</value>
</Case>
</ParseTest>
</Test>
Test是我全班的根节点。 ParseTest应该是每个方法的根,所以我想访问每个运行一个案例节点及其子节点
我的测试代码是:
[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",@"PATH\name.xml","ParseTest",DataAccessMethod.Seqential)]
public void ParseTest()
{
//Arrange
m_testContext.DataRow["uri"].ToString();
//Act
//Assert
}
问题是,框架找不到正确的子节点。找到该文件正确。我通过VS中的“运行测试”运行测试。
答案 0 :(得分:1)
在this example之后,额外的ParseTest
是多余的(或嵌套的Case
标记)。据我所知,测试框架将加载名为ParseTest
的所有标记,并为每个标记运行一个测试(假设您将"ParseTest"
作为表名传递)。不知道如何从测试中访问数据我猜想XML应该像
<Test>
<ParseTest>
<uri>somestring</uri>
<key>somestring</key>
<value>somestring</value>
</ParseTest>
<ParseTest>
<uri>somestring</uri>
<key>somestring</key>
<value>somestring</value>
</ParseTest>
</Test>