如何在多个测试中重用[RowTest]属性

时间:2012-03-09 21:11:26

标签: nunit rowtest

在使用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
}

1 个答案:

答案 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?