Скажите, что мы имеем следующий тест блока:Сделать Nunit провалиться по недействительным параметрам теста
[Test]
public void OneAndOneTest(int one)
{
Assert.That(1 + one, Is.EqualTo(2));
}
компилятор будет принимать этот код. Но сам тест неверен, поскольку он должен был быть [TestCase(1)]
вместо [test]
. При выполнении этого теста специально с Nunit, он даст ошибку, говоря, что есть несоответствие параметров. Однако, когда я запускаю весь тест в решении, я получаю «пропущенный» результат вместо указанной ошибки.
Локально это досада. Но вы должны были протестировать свой тест при написании, поэтому это не слишком большая проблема. (должно быть ключевое слово здесь ...)
Однако, когда Дженкинс бежит, чтобы проверить, он должен всегда терпеть неудачу. Неспособность выполнить пропущенные тесты не является вариантом, так как место, в котором я работаю, позволяет в некоторых случаях пропускать тесты.
Проблемы с Nunit (я думаю). Как моя локальная система, так и Jenkins запускают исполняемый файл NUnit и транслируют результаты из исполняемого файла. Моя локальная система портирует его в Dot-покрытие, в то время как Jenkins его сбрасывает в XML-файл, который анализирует Nunit plugin
в процессе сборки.
Короче говоря: Есть, с NUnit, таким образом, чтобы потерпеть неудачу сборки, когда выполняется все испытания в растворе с одним или более тестов, имеющих неправильное количество параметров
Какую версию NUnit вы используете? Я пробовал то же самое с NUnit 3.6, и тест и общий результат «Failed» ... Может быть, это проблема со старыми версиями NUnit? –
Тест недействителен и должен давать ошибку, а не сбой. Общий результат должен быть неудачным. Его нельзя пропустить, за исключением очень ранней версии NUnit, которая считала недействительные тесты пропущенными. Чтобы дать реальный ответ, потребуется знание версий фреймворка и участника. – Charlie
Хорошая точка в версии. При проверке я заметил, что мы запускаем удивительно старую версию (2.6.4). Сегодня я обновлю его и посмотрю, поможет ли это. –