Как получить отчет Clover в Jenkins при использовании конвейеров? - PullRequest
0 голосов
/ 23 апреля 2020

Я настраиваю проект Jenkins для проекта PHP. Я установил плагин Clover и хочу видеть отчеты Clover на странице моего проекта. Следуя документации к плагину Clover я добавил этот фрагмент в свой конвейер:

step([
    $class:'CloverPublisher',
    cloverReportDir: 'build/coverage',
    cloverReportFileName: 'build/logs/clover.xml',
    healthyTarget: [methodCoverage: 70, conditionalCoverage: 70, statementCoverage: 70],
    unhealthyTarget: [methodCoverage: 50, conditionalCoverage: 50, statementCoverage: 50],
    failingTarget: [methodCoverage: 0, conditionalCoverage: 0, statementCoverage: 0]
])

Соответствующая папка build/coverage и файл build/logs/clover.xml существуют:

$ cd /path/ma/project
$ ls build/coverage
ModuleA ModuleB ModuleC dashboard.html index.html
$ ls build/logs
clover.xml  crap4j.xml  junit.xml

Но на странице проекта Jenkins нет отчета Clover. Вместо этого в навигации сборки отображается только новая ссылка OpenClover HTML Report. Эта ссылка ведет на HTML отчет о покрытии.

Что я делаю не так? Как получить отчет о Clover?


Jenkinsfile

pipeline {
    agent {
        node {
            label params.LABEL
            customWorkspace params.PROJECT_ROOT
        }
    }
    stages {
        stage('Build') {
            steps {
                sh 'hostname'
                sh 'pwd'
            }
        }
        stage ('Test') {
            steps {
                sh 'echo "Test"'
                // sh './vendor/bin/phpunit ./test/Unit'
                sh 'vendor/bin/phpunit --testsuite "unit-app-only"'
                step([
                    $class: 'XUnitBuilder',
                    tools: [
                        PHPUnit([
                            pattern: 'build/logs/junit.xml',
                            skipNoTestFiles: true,
                            failIfNotNew: false,
                            deleteOutputFiles: false,
                            stopProcessingIfError: true
                        ])
                    ]
                ])
                step([
                    $class:'CloverPublisher',
                    cloverReportDir: 'build/coverage',
                    cloverReportFileName: 'build/logs/clover.xml',
                    healthyTarget: [methodCoverage: 70, conditionalCoverage: 70, statementCoverage: 70],
                    unhealthyTarget: [methodCoverage: 50, conditionalCoverage: 50, statementCoverage: 50],
                    failingTarget: [methodCoverage: 0, conditionalCoverage: 0, statementCoverage: 0]
                ])
                publishHTML([
                    allowMissing: true,
                    alwaysLinkToLastBuild: false,
                    keepAll: true,
                    reportDir: 'build/coverage',
                    reportFiles: 'index.html',
                    reportName: 'HTML Publisher Report'
                ])
            }
        }
    }
}
...