XML 嵌套节点的数据驱动单元测试

XML Data Driven Unit Test with nested Nodes

最近几个小时我无法在互联网上找到任何东西。情况是这样的:我想测试我写的一个解析器,为此我有写一个数据驱动的单元测试的愿望。我的 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是我整个class的根节点。 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 中通过“运行 测试”进行测试。

this example 之后附加的 ParseTest 是多余的(或者嵌套的 Case 标签是多余的)。据我所知,测试框架将加载名称为 ParseTest 和 运行 的所有标签,每个标签都进行测试(假设您通过 "ParseTest" 作为 table 名称) .不知道您如何从测试中访问数据我猜 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>