указать тест NUnit для запуска - PullRequest
14 голосов
/ 03 ноября 2011

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

Ответы [ 5 ]

15 голосов
/ 27 ноября 2015

Последняя версия (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. Пожалуйста, проверьте официальную документацию , если вы хотите узнать больше об этой опции.

12 голосов
/ 03 ноября 2011

Вы можете пометить свой тест атрибутом [Category("RunOnlyThis")], а затем указать NUnit запускать тесты, соответствующие только этой конкретной категории:

 /include:RunOnlyThis

- это атрибут, который нужно добавить к аргументам консоли. Подробнее здесь .

4 голосов
/ 22 марта 2016

Вы можете использовать / run на консоли NUnit, чтобы указать тест, который вы хотите запустить.

Примерно так:

/run:namespace.classname.functionName

Например

nunit-console.exe "C:\UnitTests.dll" /run:UnitTests.EmailNotificationTest.MailerDefaultTest
4 голосов
/ 03 ноября 2011

Как сказал @Toto, используйте NUnit Gui , вы можете выбирать.

enter image description here

2 голосов
/ 03 ноября 2011

Приложение поставляется с NUnit, и приложение может запустить необходимый тест.Это действительно полезно, и вам не нужно писать код для запуска теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...