Afficher les rapports de couverture du code

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 la génération de rapports de couverture et comment générer des rapports.

Vous pouvez générer des rapports de couverture pour chaque type de test (unitaire 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 de code

La couverture de 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 la spécifier 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 à une variante

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 Emplacement du rapport
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 de couverture de code unifiés

Vous pouvez générer des rapports de couverture de code unifiés à l'aide des tâches Gradle createCoverageReport et createAggregatedCoverageReport. Vous pouvez utiliser ces tâches pour générer un seul rapport HTML qui consolide les données de couverture de différents types de tests (unitaires et instrumentés), modules et variantes de compilation. Vous obtenez ainsi une vue complète de la couverture de code de votre projet dans un seul tableau de bord.

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 :

Étendue de la couverture Commande Description Emplacement du rapport
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 pour lesquels la publication est 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 explorer les données de manière plus approfondie, du module au package, du package à la classe et de la classe au fichier source. Cliquez sur n'importe quel fichier pour afficher le code avec une mise en surbrillance pour la couverture des lignes et des branches :

  • Vert : lignes couvertes.
  • Rouge : lignes non couvertes.
  • Jaune : couverture partielle (certaines instructions ou branches manquantes).