Я использую плагин конвейера для jenkins, и я хотел бы генерировать отчет о покрытии кода для каждого прогона и отображать его вместе с конвейером ui. Есть ли плагин, который я могу использовать для этого (например, Cobertura, но он, похоже, не поддерживается конвейером)?
Отчет о покрытии кода Cobertura для рабочих мест газопровода Jenkins
Ответ 1
Существует способ добавить шаг конвейера для публикации отчета о покрытии, но он не отображается в интерфейсе BlueOcean. Он будет хорошо отображаться в обычном пользовательском интерфейсе.
pipeline {
agent any
stages {
...
}
post {
always {
junit '**/nosetests.xml'
step([$class: 'CoberturaPublisher', autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', failUnhealthy: false, failUnstable: false, maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false])
}
}
}
Обратите внимание, что одним из параметров плагина Cobertura является XML, который он будет использовать ( "**/coverage.xml" в примере).
Если вы используете python, вы захотите использовать что-то вроде:
nosetests --with-coverage --cover-xml --cover-package=pkg1,pkg2 --with-xunit test
Ответ 2
Создайте отчет с помощью командной строки cobertura-report
в указанной директории и приложите результаты как артефакты.
cobertura-report [--datafile file] --destination dir [--format
html|xml] [--encoding encoding] directory [--basedir dir]
Ответ 3
В настоящее время вы также можете использовать команду cobertura
непосредственно в Jenkinsfile
stage ("Extract test results") {
cobertura coberturaReportFile: 'path-to/coverage.xml'
}
источник: https://issues.jenkins-ci.org/browse/JENKINS-30700