doc-locale/fr-fr/ci/testing/unit_test_report_examples.md
{{< details >}}
{{< /details >}}
Utilisez ces exemples comme lignes directrices pour configurer des rapports de tests unitaires dans différents langages et frameworks de test. Les rapports de tests unitaires nécessitent que votre framework de test génère une sortie au format JUnit XML et que votre job CI/CD charge les résultats en tant qu'artefacts.
Les exemples suivants montrent les configurations de job individuelles à ajouter à votre fichier .gitlab-ci.yml. Tous les exemples utilisent :
artifacts:when: always pour charger les rapports même lorsque les tests échouent.artifacts:reports:junit pour spécifier l'emplacement du fichier JUnit XML.before_script lorsque cela est nécessaire.Chaque exemple est un job fonctionnel que vous pouvez copier et adapter à votre projet. Vous pourriez avoir besoin de :
image: pour votre environnement.Pour les instructions de configuration et le dépannage, consultez les rapports de tests unitaires.
| Langage | Outil | Indicateur de sortie JUnit |
|---|---|---|
| .NET | JunitXML.TestLogger | --logger:"junit;LogFilePath=report.xml" |
| C/C++ | GoogleTest | --gtest_output="xml:report.xml" |
| C/C++ | CUnit | Automatique avec les macros CUnitCI.h |
| Flutter/Dart | junitreport | | tojunit -o report.xml |
| Go | gotestsum | --junitfile report.xml |
| Helm | helm-unittest | -t JUnit -o report.xml |
| Java | Gradle | Automatique dans build/test-results/test/ |
| Java | Maven | Automatique dans target/surefire-reports/ et target/failsafe-reports/ |
| JavaScript | jest-junit | --reporters=jest-junit |
| JavaScript | karma-junit-reporter | --reporters junit |
| JavaScript | mocha-gitlab-reporter | --reporter mocha-gitlab-reporter |
| PHP | PHPUnit | --log-junit report.xml |
| Python | pytest | --junitxml=report.xml |
| Ruby | rspec_junit_formatter | --format RspecJunitFormatter --out report.xml |
| Rust | cargo2junit | | cargo2junit > report.xml |
Générez des rapports JUnit XML avec .NET en utilisant le package NuGet JunitXML.TestLogger :
Test:
stage: test
script:
- 'dotnet test --test-adapter-path:. --logger:"junit;LogFilePath=..\artifacts\{assembly}-test-result.xml;MethodFormat=Class;FailureBodyFormat=Verbose"'
artifacts:
when: always
paths:
- ./**/*test-result.xml
reports:
junit:
- ./**/*test-result.xml
Cet exemple suppose qu'une solution se trouve dans le dossier racine du dépôt, avec un ou plusieurs fichiers de projet dans des sous-dossiers. Un fichier de résultats est produit par projet de test, et chaque fichier est placé dans le dossier des artefacts. Les arguments de formatage améliorent la lisibilité des données de test dans le widget de test.
Générez des rapports JUnit XML avec GoogleTest en utilisant la sortie XML intégrée :
cpp:
stage: test
script:
- gtest.exe --gtest_output="xml:report.xml"
artifacts:
when: always
reports:
junit: report.xml
Si plusieurs exécutables gtest sont créés pour différentes architectures (x86, x64 ou arm), assurez-vous que chaque test possède un nom de fichier unique. Les résultats sont ensuite agrégés.
Générez des rapports JUnit XML avec CUnit en utilisant les macros CUnitCI.h :
cunit:
stage: test
script:
- ./my-cunit-test
artifacts:
when: always
reports:
junit: ./my-cunit-test.xml
Générez des rapports JUnit XML avec Flutter ou Dart en utilisant le package junitreport :
test:
stage: test
script:
- flutter test --machine | tojunit -o report.xml
artifacts:
when: always
reports:
junit:
- report.xml
Cet exemple utilise le package junitreport pour convertir la sortie flutter test au format JUnit XML.
Générez des rapports JUnit XML avec Go en utilisant gotestsum :
golang:
stage: test
script:
- go install gotest.tools/gotestsum@latest
- gotestsum --junitfile report.xml --format testname
artifacts:
when: always
reports:
junit: report.xml
Générez des rapports JUnit XML avec Helm en utilisant le plugin Helm Unittest :
helm:
image: helmunittest/helm-unittest:latest
stage: test
script:
- '-t JUnit -o report.xml -f tests/*[._]test.yaml .'
artifacts:
when: always
reports:
junit: report.xml
L'indicateur -f tests/*[._]test.yaml configure helm-unittest pour rechercher les fichiers dans le répertoire tests/ dont le nom se termine par .test.yaml ou _test.yaml.
Générez des rapports JUnit XML avec Gradle en utilisant le reporting de test intégré :
java:
stage: test
script:
- gradle test
artifacts:
when: always
reports:
junit: build/test-results/test/**/TEST-*.xml
Si plusieurs tâches de test sont définies, gradle génère plusieurs répertoires sous build/test-results/. Dans ce cas, vous pouvez tirer parti de la correspondance glob en définissant le chemin suivant : build/test-results/test/**/TEST-*.xml.
Générez des rapports JUnit XML avec Maven en utilisant les rapports de test Surefire et Failsafe :
java:
stage: test
script:
- mvn verify
artifacts:
when: always
reports:
junit:
- target/surefire-reports/TEST-*.xml
- target/failsafe-reports/TEST-*.xml
Générez des rapports JUnit XML avec Jest en utilisant le package npm jest-junit :
javascript:
image: node:latest
stage: test
before_script:
- 'yarn global add jest'
- 'yarn add --dev jest-junit'
script:
- 'jest --ci --reporters=default --reporters=jest-junit'
artifacts:
when: always
reports:
junit:
- junit.xml
Pour que le job réussisse lorsqu'il n'y a aucun fichier .test.js contenant des tests unitaires, ajoutez l'indicateur --passWithNoTests à la fin de la commande jest dans la section script:.
Générez des rapports JUnit XML avec Karma en utilisant le package npm karma-junit-reporter :
javascript:
stage: test
script:
- karma start --reporters junit
artifacts:
when: always
reports:
junit:
- junit.xml
Pour un exemple de configuration Mocha, consultez mocha-gitlab-reporter.
Générez des rapports JUnit XML avec PHP en utilisant PHPUnit :
phpunit:
stage: test
script:
- composer install
- vendor/bin/phpunit --log-junit report.xml
artifacts:
when: always
reports:
junit: report.xml
Vous pouvez également configurer cette option en utilisant XML dans le fichier de configuration phpunit.xml.
Générez des rapports JUnit XML avec Python en utilisant pytest :
pytest:
stage: test
script:
- pytest --junitxml=report.xml
artifacts:
when: always
reports:
junit: report.xml
Générez des rapports JUnit XML avec RSpec en utilisant le gem rspec_junit_formatter :
ruby:
image: ruby:3.0.4
stage: test
before_script:
- apt-get update -y && apt-get install -y bundler
script:
- bundle install
- bundle exec rspec --format progress --format RspecJunitFormatter --out rspec.xml
artifacts:
when: always
paths:
- rspec.xml
reports:
junit: rspec.xml
Générez des rapports JUnit XML avec Rust en utilisant cargo2junit :
run unittests:
image: rust:latest
stage: test
before_script:
- cargo install --root . cargo2junit
script:
- cargo test -- -Z unstable-options --format json --report-time | bin/cargo2junit > report.xml
artifacts:
when: always
reports:
junit:
- report.xml
Pour récupérer la sortie JSON de cargo test, vous devez activer le compilateur nightly. L'outil est installé dans le répertoire courant.