Как повторно использовать атрибуты [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 ответ

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

licensed under cc by-sa 3.0 with attribution.