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 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).