Подтвердить что ты не робот

Указать тест 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, за документация.

4b9b3361

Ответ 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, и приложение может запустить требуемый тест. Это действительно полезно, и вам не нужно писать код для запуска теста.