Разница между этапами тестирования и покрытия на CI-серверах - PullRequest
0 голосов
/ 23 марта 2019

Я только начинаю играть с настройкой thresholds, когда я запускаю coverage, пытаясь заставить нашу команду применять выделенные пороговые стандарты.У меня такой вопрос, есть ли необходимость в отдельных tests и coverage шагах?Мне кажется, они делают одно и то же?Я думал о появлении этих двух шагов на шаге tests-coverage, имеет ли это смысл?

enter image description here

1 Ответ

1 голос
/ 23 марта 2019

Одной из причин запуска тестов и покрытия по отдельности является то, что для измерения покрытия необходимо изменить программу для поддержки сбора информации о покрытии.

В Java и Jacoco, и Cobertura изменят байт-код файлов классов, чтобы добавить инструкции кзапись покрытия.В C ++, чтобы использовать GCov для измерения покрытия, вы компилируете двоичные файлы с флагами, отличными от тех, которые используются для создания двоичных файлов релизов.

Поэтому имеет смысл запускать тесты с артефактами выпуска, чтобы получить уверенность в том, что артефакты выпускаведут себя правильно.Затем для измерения покрытия в отдельном прогоне по инструментальным артефактам.

Конечно, можно предположить, что артефакты с включенным покрытием будут функционально эквивалентны артефактам выпуска.Поэтому запуск тестов дважды не требуется.Это зависит от вашего (и ваших компаний) отношения к риску, и вы можете выполнить тесты дважды (с покрытием и без покрытия) или один раз с включенным покрытием.

...