MsTest - XML 数据源:您能否将整个 XML 检索为 XElement?

MsTest - XML datasource: can you retrieve the entire XML as XElement?

那么,问题来了。 我们现在正在试验 XML 直接作为数据源,如下所示:

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", 
    @"Datasets\test01.xml", "test", DataAccessMethod.Sequential)]

我的(已经存在的)测试自动化框架完全可以解析和处理作为 XElement 参数传递的测试数据。

但是,使用上面的代码似乎会导致 DataRow 包含 DataTable,而 DataTable 又将 XML 结构分解为其各个子节点。另外,根据 this discussion,XML 应该包含一个 table(最多两层深)?

我想要实现的就是这样,但是我缺少 DataRow 和 XElement 对象之间的 link

XElement xmlData = testContext.DataRow["login"];

因此从这个 XML 返回 login 元素。编辑:此元素本身将包含多个子节点(深度可以是多个级别)。

   <test>
       <login>...</login>
       <actions>...</actions>
   </test>

它是这样工作的。但是,问题是 DataRow.Table 当前 returns 整个 XML 而不仅仅是假定的当前数据行。

        using (var ms = new MemoryStream())
        {
            testContext.DataRow.Table.WriteXml(ms);
            var xmlData = XElement.Parse(Encoding.UTF8.GetString(ms.ToArray()));
            Console.Write(xmlData.ToString());
            return xmlData.Element(rowName).Element(tag);
        }