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