Ответ 1
Assert.Ignore();
- это именно то, о чем вы просите, хотя есть также:
Assert.Inconclusive();
Есть ли способ завершения теста nunit и сообщить тест-бегуну, что его следует считать пропущенным/проигнорированным, а не успешным или неудачным?
Моей мотивацией для этого является то, что у меня есть несколько тестов, которые не применяются в определенных обстоятельствах, но это невозможно определить до тех пор, пока не начнется тест (или, может быть, прибор).
Очевидно, что в этих обстоятельствах я мог бы просто вернуться из теста и позволить ему добиться успеха, но (а) это кажется неправильным и (б) я хотел бы знать, что тесты были пропущены.
Я знаю атрибут [Игнорировать], но он скомпилирован. Я ищу временный, программный эквивалент. Что-то вроде:
if (testNotApplicable)
throw new NUnit.Framework.IgnoreTest("Not applicable");
Или программно пропустить тест просто неправильно? Если да, то что мне делать?
Assert.Ignore();
- это именно то, о чем вы просите, хотя есть также:
Assert.Inconclusive();
У меня есть метод TestInit()
, TestInitialize
, где есть условие вроде:
//This flag is the most important.False means we want to just ignore that tests
if (!RunFullTests)
Assert.Inconclusive();
RunFullTests - глобальная логическая переменная, расположенная в постоянном классе. Если мы установим это в false, весь тестовый класс будет проигнорирован, и все тесты в этом классе будут проигнорированы.
Я использую это, когда есть тесты интеграции.