Android test de couverture de code avec JaCoCo plugin Gradle
Je suis nouveau sur Gradle et Android de test, mais j'ai déjà converti mon projet Android pour construire avec Gradle.
Maintenant, je suis en train de réaliser la couverture de test d'un projet Android avec Gradle est JaCoCo plugin.
J'ai ajouté ce qui suit à mon construire.gradle fichier:
apply plugin: 'jacoco'
Et quand je lance "gradle jacocoTestReport" l'erreur suivante:
Task 'jacocoTestReport' not found in root project '<project name>'.
À partir de la documentation que je suis censé s'appliquent également plugin "java", mais il est en conflit avec le plugin 'android'.
Est-il un moyen de contourner cela?
Merci d'avance.
- La couverture de Test n'est pas encore supporté par android plugin gradle. Je suis à la recherche d'un moyen pour atteindre un peu trop, mais il semble désespérée maintenant que le plugin gradle pour android ne veut pas dire android pour générer une couverture.
- jusqu'à ce que le plugin java et android plugin sont compatibles ensemble, vous pouvez utiliser ant.java pour exécuter les tests et aussi de produire des rapport de couverture. fondamentalement faire ce que vous feriez dans ANT.
- Avez-vous un exemple de la façon de faire dans ant? Je n'ai pas été en mesure de trouver un exemple de configuration de
jacocoagent
et de récupérer le rapport de l'émulateur.
Vous devez vous connecter pour publier un commentaire.
Ici est de savoir comment je suis en utilisant
Jacoco
:Le code ci-dessus contient également une solution de contournement pour https://code.google.com/p/android/issues/detail?id=69174.
Plus de détails: http://chrisjenx.com/gradle-robolectric-jacoco-dagger/
build.gradle
avec robolectric intégré. Vous avez juste besoin de mettreapply plugin: 'jacoco'
àapply plugin
section, puis mettre le reste du code ci-dessus à la fin de votrebuild.gradle
. Vous pouvez ensuite exécuter./gradlew testDebug jacocoTestReport
. C'est tout.classpath 'com.android.tools.build:gradle:0.12.+'
, quelle version utilisez-vous?build.gradle
, espérons que cela aide.testCoverageEnabled false
? @HieuRocker./gradlew jacocoTestReport
pourquoi exécuter à la fois./gradlew testDebugUnitTest jacocoTestReport
Je suis en utilisant JaCoCo avec un projet à l'aide de RoboGuice, Butterknife et Robolectric. J'ai été en mesure de le configurer à l'aide de @Hieu Rocker solution, mais il y avait quelques petits inconvénients, c'est à dire dans notre projet, nous utilisons des saveurs et des tests pour ces saveurs ainsi que le code java pour chacun d'eux. Nous utilisons également des différents types de builds. Donc une solution pour s'appuyer sur la "testDebug" la tâche n'était pas assez bon.
Voici ma solution:
Dans construire.gradle dans application module ajouter
Puis créer un jacoco.gradle fichier à l'intérieur de application module avec le contenu suivant:
Vous pouvez l'exécuter en ligne de commande comme ceci:
ou
Dans notre projet, nous utilisons une convention de ne pas utiliser de majuscule à l'intérieur de la saveur et de construire des noms de type, mais si votre projet ne respecte pas cette convention, vous pouvez simplement changer getFlavorFromVariant(..) et getBuildTypeFromVariant(..) fonctions
Espère que cela aide quelqu'un
Vous pouvez essayer d'utiliser ce plugin Gradle:
https://github.com/arturdm/jacoco-android-gradle-plugin
Il y a un peu plus dans la réponse ici https://stackoverflow.com/a/32572259/1711454.
Avez-vous essayez d'ajouter le suivant:
Et puis au lieu de courir
./gradlew jacocoTestReport
exécuter./gradlew test jacocoTestReport
.Si tout va bien, vous devriez trouver les résultats du test le
build/reports/jacoco/test/html/index.html
.