Указать тест NUnit для запуска
У меня есть проект NUnit, создающий консольное приложение для запуска тестов. Точка входа выглядит следующим образом:
class Program
{
[STAThread]
static void Main(string[] args)
{
string[] my_args = { Assembly.GetExecutingAssembly().Location };
int returnCode = NUnit.ConsoleRunner.Runner.Main(my_args);
if (returnCode != 0)
Console.Beep();
}
}
Что я могу передать в качестве аргумента, если я хочу запустить этот тест ТОЛЬКО:
[TestFixture]
public class EmailNotificationTest
{
[Test]
public void MailerDefaultTest()
{
Assert.IsTrue(false);
}
}
Ясно, что это поддерживается, и так же ясно, что я не знаю, как это сделать.
UPDATE
Похоже, что с v3 + это возможно с опцией --test
, за документация.
Ответы
Ответ 1
Вы можете пометить свой тест атрибутом [Category("RunOnlyThis")]
, а затем сообщить NUnit для запуска тестов только для этой конкретной категории:
/include:RunOnlyThis
- это атрибут, который необходимо добавить к аргументам консольного запуска. Подробнее здесь.
Ответ 2
Последняя версия (NUnit 3) позволяет отлаживать тесты, а также указывать тесты для выполнения.
Debug
Опция --debug
запускает отладчик для отладки тестов, например:
nunit3-console.exe "C:\path\to\the\tests.dll" --debug
Тесты фильтра
Теперь у вас есть несколько различных способов выбора тестов для запуска. Первый вариант - --test=NAMES
. Объединив эту опцию и --debug
, вы можете легко отладить только один тест, например:
nunit3-console.exe "C:\path\to\the\tests.dll" --debug --test="EmailNotificationTest.MailerDeSecondTest"
Не забывайте про пространство имен, если класс имеет его.
Используя параметр --testlist=PATH
, вы можете запускать все тесты, указанные в файле, например:
nunit3-console.exe "C:\path\to\the\tests.dll" --debug --testlist="testnames.txt"
Существует также опция --where=EXPRESSION
, указывающая, какие тесты будут выполняться. Этот параметр предназначен для расширения или замены ранее опций --test
, --include
и --exclude
. Пожалуйста, ознакомьтесь с официальной документацией если вы хотите узнать больше об этой опции.
Ответ 3
Как сказал @Toto, используйте NUnit Gui, вы можете выбрать и выбрать.
![enter image description here]()
Ответ 4
Вы можете использовать переключатель /run консоли NUnit, чтобы указать тест, который вы хотите запустить.
Вот так:
/run:namespace.classname.functionName
например.
nunit-console.exe "C:\UnitTests.dll" /run:UnitTests.EmailNotificationTest.MailerDefaultTest
Ответ 5
Приложение поставляется с NUnit, и приложение может запустить требуемый тест. Это действительно полезно, и вам не нужно писать код для запуска теста.