Через некоторое время поиска выясняется, что проблема заключалась в том, что где-то в моем процессе разработки переменной ERRORLEVEL было присвоено значение.Таким образом, когда я писал echo %ERRORLEVEL%
, он сообщал о переменной ERRORLEVEL, а не о фактическом коде выхода ERRORLEVEL.
Я исправил это, просто закрыв консоль и снова открыв ее.Теперь, когда модульные тесты не пройдены, код завершения больше 0. Если все тесты пройдены, код завершения равен 0.
РЕДАКТИРОВАТЬ: я полностью удалил это из моего сценария.Теперь вместо этого я добавляю nunit-console $(TargetPath)
в события после сборки моего тестового проекта.Таким образом, когда я создаю решение с помощью MSBuild, оно автоматически запускает модульные тесты и сообщает об ошибке, если тесты не пройдены.При построении в Visual Studio этот подход также приводит к добавлению ошибки в список ошибок при сбое модульных тестов, что удобно для выявления новых ошибок еще быстрее.