Покрытие кода для непроверенных проектов в ядре.net и глобальном пороге
Я настроил конвейер Azure DevOps CI для сбора покрытия кода, полученного с помощью coverlet. Я заметил, что если проект каким-либо образом тестируется проектом, в отчет будет включена информация о непроверенных классах / коде, но если, например, разработчик добавляет новый проект без соответствующего тестового проекта, код не отображается в итоговом отчете. Более того, кажется, что пороговые значения можно указывать только для каждого тестового проекта (например, у меня может быть проект, который тестируется двумя различными тестовыми проектами: оба вносят вклад в статистику покрытия кода для исходных проектов). Я использую задачу конвейера "PublishCodeCoverageResults" для публикации результатов покрытия кода. Есть ли способ позволить сборке CI потерпеть неудачу, если общее покрытие кода не достигает определенного порога?
1 ответ
Результат покрытия кода основан на тестовом проекте (ах), поэтому результат покрытия кода не должен включать проекты без соответствующего тестового проекта.
Для общего порога покрытия кода вы можете использовать этот аргумент:
--configuration $(BuildConfiguration) /p:CollectCoverage=true /p:threshold=75 /p:thresholdType=line /p:thresholdStat=total /p:CoverletOutputFormat=cobertura
С другой стороны, существует новая функция, касающаяся метрик покрытия кода в запросе на извлечение: метрики покрытия кода и политика ветвления для запросов на извлечение