gpt4 book ai didi

xml - 用于数据驱动单元测试的嵌套 XML

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:56 26 4
gpt4 key购买 nike

我的目标是在我的每个单元测试迭代中都有“嵌套”数据。我想这样做,这样我就可以调用一组数据,以及一组操作(用字符串描述),然后在我的测试中解释和执行这些操作。我目前通过测试资源管理器在 VS2013 中正确地使用非嵌套数据(例如,没有数据/操作子项组)运行测试。

例如,我的数据可能是:

<TestData>
<Iteration>
<Data>
<LoginName>admin</LoginName>
<Password>admin</Password>
</Data>
<Actions>
<Action>EnterText_LoginName</Action>
<Action>EnterText_Password</Action>
<Action>ClickButton_Login</Action>
</Actions>
</Iteration>
</TestData>

我想按照正常的非嵌套测试 (dataElements["element"]) 访问 Data 中的元素,但是,我想在列表中包含 Actions 元素。我尝试了以下但没有成功:

var data = TestContext.DataRow.GetChildRows("Iteration_Data");
var actions = TestContext.DataRow.GetChildRows("Iteration_Actions");

GetChildRows 似乎是正确的方法,但我无法在返回的对象中看到任何类似于我的 XML 元素的数据 - 我只得到 1 个具有 ItemArrayDataRow 对象> 3 个值(0、{}、0)。如何检索我的 Action 元素列表以便我可以访问文本:

  • “EnterText_LoginName”
  • “输入文本_密码”
  • “点击按钮登录”

最佳答案

我遇到了你同样的问题,我是这样解决的。

这是我的 XML

<?xml version="1.0" encoding="utf-8" ?>
<root>
<parent>
<field1>1234</field1>
<field2>4700</field2>
<child>
<name>john</name>
<age>2</age>
</child>
<child>
<name>jack</name>
<age>3</age>
</child>
</parent>
</root>

TestMethod 的数据源必须是包含数据的节点 XML 父节点和要读取的节点子节点列表。这是测试方法:

[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"App_Data\\TestsInput\\Controllers\\Identity\\Tests\\Test.xml",
"parent",
DataAccessMethod.Sequential)]
public void MyFirstTest()
{
//get a normal node XML
int field1= Convert.ToInt32(TestContext.DataRow["field1"]);

//get the list of fields
DataRow[] datas = TestContext.DataRow.GetChildRows("parent_child");

foreach (DataRow data in datas)
{
string name= data["name"].ToString();
int age= Convert.ToInt32(data["age"]);

//example
Assert.IsTrue(age==2);
}
}

关于xml - 用于数据驱动单元测试的嵌套 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25541795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com