doc-locale/fr-fr/ci/testing/code_coverage/jacoco.md
{{< details >}}
{{< /details >}}
{{< history >}}
jacoco_coverage_reports. Désactivé par défaut.jacoco_coverage_reports a été supprimé.{{< /history >}}
Utilisez les rapports de couverture JaCoCo pour afficher les annotations de couverture ligne par ligne dans les diffs de merge request. GitLab lit le rapport XML JaCoCo et annote chaque ligne modifiée comme couverte (vert) ou non couverte (rouge).
La visualisation de la couverture utilise le mot-clé artifacts:reports:coverage_report. Elle n'affiche pas de pourcentage de couverture dans le widget de merge request et ne renseigne pas les graphiques d'historique de couverture. Pour afficher un pourcentage de couverture, configurez le mot-clé coverage séparément.
[!note] Les rapports agrégés provenant de projets multi-modules ne sont pas pris en charge. Pour contribuer à la prise en charge des rapports agrégés, consultez le ticket 491015.
Ajoutez un job de couverture JaCoCo lorsque vous souhaitez afficher les annotations de couverture ligne par ligne dans les diffs de merge request.
Prérequis :
Pour ajouter un job de couverture JaCoCo :
Ajoutez un job à votre fichier .gitlab-ci.yml avec artifacts:reports:coverage_report défini sur jacoco. Par exemple :
test-jdk11:
stage: test
image: maven:3.6.3-jdk-11
script:
- mvn $MAVEN_CLI_OPTS clean org.jacoco:jacoco-maven-plugin:prepare-agent test jacoco:report
artifacts:
reports:
coverage_report:
coverage_format: jacoco
path: target/site/jacoco/jacoco.xml
Définissez path sur l'emplacement du rapport XML JaCoCo généré.
Si le job génère plusieurs rapports, utilisez un caractère générique dans le chemin de l'artefact.
La visualisation JaCoCo utilise les instructions (couverture C0), représentées par ci (instructions couvertes) dans les rapports.
Une fois le pipeline terminé, la couverture s'affiche dans la vue des diffs de merge request avec ces indicateurs :
ci > 0)ci = 0)Par exemple, avec cette sortie de rapport :
<line nr="83" mi="2" ci="0" mb="0" cb="0"/>
<line nr="84" mi="2" ci="0" mb="0" cb="0"/>
<line nr="85" mi="2" ci="0" mb="0" cb="0"/>
<line nr="86" mi="2" ci="0" mb="0" cb="0"/>
<line nr="88" mi="0" ci="7" mb="0" cb="1"/>
La vue des diffs de merge request affiche la couverture comme suit :
Dans cet exemple, les lignes 83 à 86 affichent des barres rouges pour le code non couvert, la ligne 88 affiche une barre verte pour le code couvert, et les lignes 87, 89 à 90 ne disposent d'aucune donnée de couverture.
Pour résoudre les problèmes liés à la visualisation de la couverture, notamment les échecs de résolution de chemin et les annotations qui ne s'affichent pas comme prévu, consultez le dépannage de la visualisation de la couverture.
La visualisation de la couverture JaCoCo est activement améliorée. Pour signaler des problèmes ou suggérer des améliorations, laissez votre retour dans le ticket 479804.