在使用Row()属性
时,有两个测试使用相同的服务器列表有没有办法避免在两个测试中重复所有Row属性?
[RowTest]
[Row("server1")]
[Row("server2")]
[Row("server3")]
public void Test1(string server)
{
//try connecting on port
}
[RowTest]
[Row("server1")]
[Row("server2")]
[Row("server3")]
public void Test2(string server)
{
//ping server
}
答案 0 :(得分:1)
是。您可以为测试用例定义源。源可以是方法,字段或属性,可以是静态或实例。要求是源应返回IEnumberable或实现它的另一种类型。当然,这些来源可以重复使用,这是您的要求。
通过使用TestCaseSourceAttribute修饰方法来指明测试用例的来源。下面的代码段是我提供的链接中的一个示例。
static int[] EvenNumbers = new int[] { 2, 4, 6, 8 };
[Test, TestCaseSource("EvenNumbers")]
public void TestMethod(int num)
{
Assert.IsTrue( num % 2 == 0 );
}
还要考虑到在NUnit的最新版本中,没有Row或RowTest属性,有关更多信息,请访问此问题:What happended to nunit extensions/rowtest?