Nas*_*san 5 xml unit-testing data-driven-tests visual-studio-2013
我的目标是在每个单元测试迭代中都有"嵌套"数据.我想这样做,所以我可以有一组要调用的数据,以及一系列动作(由字符串描述),然后在我的测试中解释和执行.我目前通过测试资源管理器在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>
Run Code Online (Sandbox Code Playgroud)
我想按照正常的非嵌套测试(dataElements["element"])访问Data中的元素,但是,我希望在列表中包含Actions元素.我试过以下但没有成功:
var data = TestContext.DataRow.GetChildRows("Iteration_Data");
var actions = TestContext.DataRow.GetChildRows("Iteration_Actions");
Run Code Online (Sandbox Code Playgroud)
GetChildRows似乎是正确的方法,但我无法在返回的对象中看到任何类似于我的XML元素的数据 - 我只得到1个DataRow具有ItemArray3个值(0,{},0)的对象.如何检索我的Action元素列表,以便我可以访问该文本:
小智 1
我遇到了你同样的问题,我就是这样解决的。
这是我的 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>
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |