Как повторно использовать атрибуты [RowTest] в нескольких тестах - PullRequest
1 голос
/ 10 марта 2012

Есть 2 теста, которые используют один и тот же список серверов при использовании атрибута 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 Ответ

1 голос
/ 10 марта 2012

Да. Вы можете определить источник для тестовых случаев. Источник может быть методом, полем или свойством, может быть статическим или экземпляром. Требование состоит в том, что источник должен возвращать 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 для получения дополнительной информации посетите атрибут no Row или RowTest: Что случилось с расширениями nunit / rowtest?

...