CruiseControl и MSTest: сбой сборки при сбое теста - PullRequest
2 голосов
/ 20 ноября 2011

Я пытаюсь интегрировать MSTest (версия Visual Studio 2010) в круиз-контроль.Я могу получить отчет об испытаниях, который будет отображаться в отчете о сборке, включая показ испытаний, которые не пройдены.Тем не менее, даже если тесты не пройдены, сборка CruiseControl все еще «успешно» (например, в CCTray сборка «становится зеленой»).На веб-странице сборки написано: «Выполнено наборов: 0», «Выполнено тестов: 0» и т. Д.

Мне бы хотелось, чтобы в случае сбоя теста сборка не выполнялась (т. Е. Красного цвета)').

Я искал по всей сети и следовал всем советам, которые смог найти, но безрезультатно.Любая помощь и / или совет будет принята с благодарностью.Заранее спасибо!:)

1 Ответ

0 голосов
/ 01 августа 2017

Часть проблемы заключается в том, что msbuild.exe возвращает "true" код выхода ($?) По завершении теста (а не пройденного теста). Вам необходимо проверить файл результатов *.trx для раздела ResultsSummary (в частности, счетчики "passed" и "executed").

например. Jenkins имеет способ преобразования *.trx в свой собственный (jUnit) формат для их интерпретации.

У меня есть пакетный скрипт, который запускает MSTEST с указанием выходного файла, а затем проверяется с помощью следующего на наличие сбоев, а затем завершает работу с ненулевым состоянием (что даст Дженкинсу знать, что тест не пройден):

findstr "testsFailed=""[^0]""" "C:\Jenkins\workspace\YOUR_PROJECT\YOUR_RESULTS.trx" >"C:\Jenkins\workspace\YOUR_PROJECT\YOUR_RESULTS.out" && exit 1
...