web-dev-qa-db-fra.com

Rapport de couverture du code Cobertura pour les emplois du pipeline Jenkins

J'utilise le plugin de pipeline pour jenkins et je voudrais générer un rapport de couverture de code pour chaque exécution et l'afficher avec l'interface utilisateur du pipeline. Existe-t-il un plugin que je peux utiliser pour faire cela (par exemple Cobertura mais il ne semble pas être pris en charge par le pipeline)?

41
ebnius

Il existe un moyen d'ajouter une étape de pipeline pour publier votre rapport de couverture, mais il ne s'affiche pas sous l'interface BlueOcean. Il apparaîtra bien dans l'interface utilisateur normale.

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])
        }
    }
}

Notez que l'un des paramètres du plugin Cobertura est le XML qu'il utilisera ('**/coverage.xml' dans l'exemple).

Si vous utilisez python, vous voudrez utiliser quelque chose comme:

nosetests --with-coverage --cover-xml --cover-package=pkg1,pkg2 --with-xunit test
38
Roman Kutlak

De nos jours, vous pouvez également utiliser la commande cobertura directement dans un fichier Jenkins

stage ("Extract test results") {
    cobertura coberturaReportFile: 'path-to/coverage.xml'
}

source: https://issues.jenkins-ci.org/browse/JENKINS-307

17
hwjp

Générer un rapport en utilisant ligne de commandecobertura-report dans le répertoire spécifié et attachez les résultats comme des artefacts.

cobertura-report   [--datafile   file]    --destination  dir  [--format
       html|xml]  [--encoding encoding]  directory [--basedir dir]
0
SACn