Программно пропустить тест NUNIT - PullRequest
37 голосов
/ 04 ноября 2010

Есть ли способ завершить тест монеты и сказать организатору теста, что его следует считать пропущенным / проигнорированным, а не успешным или неудачным?

Моя мотивация заключается в том, что у меня есть несколько тестовкоторые не применимы при определенных обстоятельствах, но это не может быть определено, пока тест (или, возможно, прибор) не начнет работать.

Очевидно, что в этих обстоятельствах я мог бы просто вернуться из теста и позволить ему пройти успешно, но (а) это кажется неправильным и (б) я хотел бы знать, что тесты были пропущены.

Мне известен атрибут [Игнорировать], но он компилируется.Я ищу во время выполнения, программный эквивалент.Что-то вроде:

if (testNotApplicable)
    throw new NUnit.Framework.IgnoreTest("Not applicable");

Или программно пропускает тест просто неправильно?Если так, что я должен делать?

Ответы [ 2 ]

40 голосов
/ 04 ноября 2010
Assert.Ignore();

именно то, что вы просите, хотя есть и:

Assert.Inconclusive();
0 голосов
/ 27 сентября 2016

У меня есть метод TestInit(), TestInitialize, где есть условие типа:

    //This flag is the most important.False means we want to just ignore that tests
    if (!RunFullTests)
        Assert.Inconclusive();

RunFullTests - глобальная логическая переменная, расположенная в классе констант. Если установить значение false, весь тестовый класс будет игнорироваться, а все тесты этого класса будут игнорироваться.

Я использую это, когда есть интеграционные тесты.

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