Выполнение теста с определенными данными
У меня есть тест, который принимает данные теста. Если для запуска теста используется консольное приложение nunit, можно ли указать данные для использования?
Например:
[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)
public class TestData : IEnumerable
{
public IEnumerator GetEnumerator()
{
yield return new object[] { "blah1 blah1", 1};
yield return new object[] { "blah2 blah2", 2};
}
}
Я хочу иметь возможность запускать ATest только с тестовыми данными ["blah2 blah2", 2]. Если я бегу следующим образом:
nunit3-console.exe Tests.dll --test=ATest --workers=1 --noresult
это будет работать дважды.
2 ответа
Просто беги...
nunit3-console.exe Tests.dll --test ATest ("blah2 blah2", 2)
или же
nunit3-console.exe Tests.dll - где "test~=blah2"
Если эта строка уникальна для всех ваших тестов.
Обратите внимание, что первый может потребовать экранирования кавычек, в зависимости от вашей операционной системы.
Один из способов сделать это - вернуть TestCaseData
объект вместо
Примерно так: (не проверено, так что синтаксис может быть немного неправильным!)
[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)
public IEnumerator GetEnumerator()
{
yield return new TestCaseData("blah1 blah1", 1).SetName("FirstTest");
yield return new TestCaseData("blah2 blah2", 2).SetName("SecondTest");
}
Для запуска первого теста вы должны использовать командную строку:
nunit3-console.exe Tests.dll --test=YourNameSpace.ATest.FirstTest --workers=1 --noresult
В зависимости от того, что вы делаете, установка категории может быть более подходящей, чем название. Страница документации показывает, что доступно: https://github.com/nunit/docs/wiki/TestCaseData