web-dev-qa-db-fra.com

Utilisez Jacoco In Android Projet avec Gradle

J'ai un Android Project avec Overle 5.1.1 Je souhaite utiliser Jacoco pour générer des rapports HTML sur la couverture de code de test. J'ai essayé de suivre les instructions de certains articles, mais toutes mes tentatives ont conduit à les erreurs.

Tout ce qui a fonctionné pour moi est d'appliquer le plugin 'Jacoco' (Project construit avec succès après cela).

apply plugin: 'jacoco'

Mais dès que j'ajouterais la tâche 'jacocotestreporte', la gradle ne peut pas se synchroniser avec des fichiers et je reçois cette erreur.

C'est ma tâche:

jacocoTestReport {
reports {
    html.enabled true
    xml.enabled false
    csv.enabled false
    html.destination file("${buildDir}/jacocoHtml")
}}

C'est mon erreur:

ERROR: Could not find method jacocoTestReport() for arguments [build_8kqk7qvpoocfxfydulk1p4m35$_run_closure3@1aba12a5] on project ':app' of type org.gradle.api.Project.

J'ai essayé d'utiliser "Gradlew Clean Build" après avoir ajouté "Appliquer plugin" dans "Build.Gradle". Auteur de Tutoriel a ajouté une tâche avec succès et a utilisé cette ligne dans le terminal pour obtenir le rapport Jacoco:

gradlew build jacocoTestReport

Voici des liens vers des articles que j'ai utilisés pour comprendre comment ajouter Jacoco au projet:

https://reflectoring.io/jacoco/

https://androïd.jlelse.eu/get-beautiful-coverage-reports-in-your-android-projects-ce9ba281507f

Donc, ma question est la suivante: y a-t-il un moyen d'ajouter Jacoco à Android projet avec gradle? Qu'est-ce que je fais mal?

8
Igor Lopatinkiy

Peut-être simplement une pâte de copie manquante, mais assurez-vous de définir votre fonction en tant que tâche en grade, c'est-à-dire: tâche Jacocotestreport (type: Jacocoreport, Dependon: ['TestDebugUnittest']) {

J'ai suivi ce blog pour la mise en place de mon instance Jacoco dans mes projets initiaux et l'a trouvé utile. https://engineering.rallyhealth.com/android/code-cverage/testing/2018/06/04/Android-code-coverage.html

1
Kyle