Le plug-in Android Gradle peut créer des rapports de couverture de code qui suivent le pourcentage de votre code couvert par vos tests. Cette page explique comment activer les rapports de couverture et en générer.
Vous pouvez générer des rapports de couverture pour chaque type de test (unité et instrumentation) pour chaque variante. Vous pouvez également générer des rapports de couverture unifiés pour différents types de tests, modules et variantes de compilation.
Activer la couverture du code
La couverture du code doit être activée en définissant enableAndroidTestCoverage et enableUnitTestCoverage sur true dans les fichiers de compilation au niveau du module pour chaque variante pour laquelle vous souhaitez obtenir des rapports de couverture :
Kotlin
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage = true // Enable coverage for instrumentation tests enableAndroidTestCoverage = true } } }
Groovy
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage true // Enable coverage for instrumentation tests enableAndroidTestCoverage true } } }
Modifier la version de Jacoco (facultatif)
AGP applique automatiquement Jacoco lorsque vous activez la couverture sur vos modules. Toutefois, si vous devez utiliser une version spécifique de Jacoco, vous pouvez l'indiquer dans votre fichier de compilation au niveau du module :
Kotlin
android { jacoco { version = "JACOCO_VERSION" } }
Groovy
android { jacoco { version = 'JACOCO_VERSION' } }
Générer des rapports de couverture spécifiques aux variantes
Pour générer des rapports de couverture uniquement pour les tests unitaires ou uniquement pour les tests instrumentés d'une variante spécifique, exécutez les tâches correspondantes.
| Type de test | Commande | Signaler un lieu |
|---|---|---|
| Tests unitaires | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| Tests instrumentés | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
Générer des rapports unifiés sur la couverture du code
Vous pouvez générer des rapports de couverture du code unifiés à l'aide des tâches Gradle createCoverageReport et createAggregatedCoverageReport. Vous pouvez utiliser ces tâches pour générer un rapport HTML unique qui consolide les données de couverture de différents types de tests (unitaires et d'instrumentation), de modules et de variantes de compilation.
Vous obtenez ainsi une vue complète de la couverture du code de votre projet dans un tableau de bord unique.
Prérequis
- Plug-in Android Gradle 9.2.0-alpha07 ou version ultérieure
Pour générer un rapport unifié, exécutez l'une des tâches suivantes à partir de la ligne de commande :
| Champ d'application de la couverture | Commande | Description | Signaler un lieu |
|---|---|---|---|
| Module actuel | ./gradlew :module-name:createCoverageReport |
Génère un rapport de couverture unifié pour le module actuel, en fusionnant les données de tous les types de tests. | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| Module actuel et dépendances | ./gradlew :module-name:createAggregatedCoverageReport |
Génère un rapport de couverture unifié pour le module actuel et toutes ses dépendances. Cette tâche est disponible pour les modules d'application et les modules de bibliothèque avec publication activée. | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
La page de destination du rapport HTML généré affiche un résumé général de tous les modules. Vous pouvez passer d'un module à un package, d'un package à une classe et d'une classe à un fichier source. Cliquez sur un fichier pour afficher le code avec la couverture des lignes et des branches en surbrillance :
- Vert : lignes couvertes.
- Rouge : lignes non couvertes.
- Jaune : couverture partielle (certaines instructions ou branches ont été manquées).