Как я могу провалить сборку TeamCity, если dotCover не сообщает достаточно высокий результат?

Я хотел бы, чтобы TeamCity запускала мои тесты mSpec и сообщала о коде, охваченном тестами.

Я также хотел бы, чтобы TeamCity сообщал о сбое сборки, если покрытие кода в определенных пространствах имен не соответствует пороговому значению (например, MyProduct.ImportantStuff должно быть 100%, но MyProduct.LegacyStuff должно быть [23% или сколько там сейчас, чтобы гарантировать, что мы не добавим новый материал без покрытия тестов].

Сначала я посмотрел на dotCover, так как он интегрирован в TeamCity. С тех пор я смотрел на OpenCover, так как не мог заставить TC провалить сборку из-за низкого охвата.

У меня работает OpenCover, но я все равно хотел бы знать (как, я уверен, и многие люди), как сделать так, чтобы TC провалил сборку, если покрытие кода слишком низкое.


person Steve Dunn    schedule 24.04.2012    source источник
comment
Просто чтобы оставить отзыв о вашей проблеме с TC и dotCover, которые не выходят из строя при низком покрытии. Этот URL-адрес подтверждает, что проблема может быть связана с метрикой, по которой вы выбрали отчет. Вам следует использовать percentage of statement coverage - teamcity-support.jetbrains.com/hc/en-us/community/posts/   -  person maurocam    schedule 25.07.2018


Ответы (1)


Вы используете последнюю версию TeamCity, т.е. версию 7?

При настройке конфигурации сборки вы можете указать это:

введите здесь описание изображения

В раскрывающемся списке есть намного дополнительных параметров, связанных с покрытием кода. Вы также можете принудительно завершить сборку, если используете какой-либо другой инструмент покрытия кода. Например, вы можете вывести на консоль строку, которую затем подхватит teamcity:

##teamcity[buildStatus status='FAILURE' text='something failed']

см. официальные документы по этому здесь

person wal    schedule 24.04.2012
comment
Привет @Wal. Да, используя последнюю версию. Я специально искал способ выйти из строя, если определенные сборки упали ниже определенного процента. Это не кажется достижимым со встроенными вещами. Я могу добиться желаемых результатов, используя OpenCover, затем запустив ReportGenerator, а затем выполнив несколько запросов XPath в сводном XML. - person Steve Dunn; 25.04.2012
comment
хорошо, а затем вы можете отправить (на консоль) ##teamcity[buildStatus status='FAILURE', чтобы отправить сообщение TC. Перейдите по этой ссылке в моем посте, чтобы увидеть полный синтаксис - person wal; 26.04.2012
comment
Это отличный обходной путь, когда TC игнорирует коды ошибок и радостно сообщает, что процесс завершен с кодом 0. Волшебно! - person starmandeluxe; 13.04.2017