MSTest中是否有等效的SuiteBuilder?到目前为止找不到一个。
我有一堆xml文件,每个文件都被视为映射到测试方法。由于其中有100个并且为这些中的每一个手动编写测试,因此不是一个好主意。
所以在nunit中你可以实现ISuiteBuilder并让测试用例动态运行并显示为那些测试方法。
我正在寻找一种在MSTest中做同样事情的方法。
我查看了DataSource属性,但是每个测试方法都需要1个数据源xml文件/ csv,这迫使我编写了100多个测试方法。我还希望将每个xml文件保持独立,并且不要将它们全部归入到一个巨大的文件中,在这种情况下它将变得无法维护。
有人试过这个或有任何建议吗?
答案 0 :(得分:2)
不完全符合您的要求,但您可以使用pex进行自动和可参数化的白盒测试。这样,你不需要手动完成所有这些工作。 Pex支持MSTest和NUnit。生成的测试使用额外的文件,您不需要任何xml文件。
但我认为您无法轻松使用NUnit中现有的.xml文件并使用pex与MSTest共享 - 如果这是您的意图。
答案 1 :(得分:1)
我已经这样做了。以下是您需要做的事情:
测试:
[TestMethod]
[DeploymentItem("MyTestData")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"|DataDirectory|\\MyTestData.xml",
"Test",
DataAccessMethod.Sequential)]
public void MyTest()
{
string file = TestContext.DataRow[0].ToString();
string expectedResult = TestContext.DataRow[1].ToString();
// TODO: Test something
}
MyTestData.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Rows>
<Test>
<File>test1.xml</File>
<Result>1</Result>
</Test>
<Test>
<File>test2.xml</File>
<Result>2</Result>
</Test>
</Rows>
test1.xml和test2.xml必须存在于MyTestData目录中。