Подтвердить что ты не робот

Отчет о покрытии кода Cobertura для рабочих мест газопровода Jenkins

Я использую плагин конвейера для jenkins, и я хотел бы генерировать отчет о покрытии кода для каждого прогона и отображать его вместе с конвейером ui. Есть ли плагин, который я могу использовать для этого (например, Cobertura, но он, похоже, не поддерживается конвейером)?

4b9b3361

Ответ 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