Gradle Jacoco - les rapports de couverture inclut des classes exclues dans la configuration
J'ai ajouté à un projet d'un ensemble de sources qui n'ont pas de tests et je ne veux pas gâcher ma couverture de test statistique. J'ai configuré Jacoco de la manière suivante :
test {
jacoco{
excludes = ['org/bla/**']
includes = ['com/bla/**']
append = false
}
}
jacocoTestReport {
dependsOn test
description = "Generate Jacoco coverage reports after running tests."
reports {
xml.enabled true
html.enabled true
}
classDirectories = fileTree(dir: 'build/classes/main', include: 'com/bla/**')
sourceDirectories = fileTree(dir: 'scr/main/java', include: 'com/bla/**')
}
Mais de toute façon, lors de la génération du rapport, Jacoco comprend également des classes de org.bla
Quelqu'un peut m'aider ?
MODIFIER
Après un peu de débogage, il semble que toutes les sorties par défaut sont ajoutés à org.gradle.testing.jacoco.tasks.JacocoReport#classDirectories
dans une méthode privée org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
Qui est visible lors de l'utilisation de ce type de code :
jacocoTestReport {
classDirectories = files('build/classes/main/com/bla')
println("-----------------------------------------------------------")
getAllClassDirs().each { File file ->
println(file.absolutePath)
}
println("-----------------------------------------------------------")
getAdditionalClassDirs().each{ File file ->
println(file.absolutePath)
}
}
jacocoTestReport << {
println("-----------------------------------------------------------")
getAllClassDirs().each { File file ->
println(file.absolutePath)
}
println("-----------------------------------------------------------")
getAdditionalClassDirs().each{ File file ->
println(file.absolutePath)
}
}
Output
-----------------------------------------------------------
<path_here>\build\classes\main\com\bla
-----------------------------------------------------------
....more text here
-----------------------------------------------------------
<path_here>\build\classes\main\com\bla
<path_here>\build\classes\main
<path_here>\build\resources\main
-----------------------------------------------------------
Donc la question est : est-il possible de remplacer en quelque sorte org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
méthode, ou de remplacer complètement org.gradle.testing.jacoco.plugins.JacocoPlugin
classe ?
OriginalL'auteur StKiller | 2013-06-30
Vous devez vous connecter pour publier un commentaire.
Ok, trouvé une solution de contournement :
Il remplace classDirectories fixé par JacocoPlugin classe.
classDirectories
?Désolé, c'était il y a longtemps, je ne suis pas à jour avec le dernier état du projet.
J'ai fini de poser ma question ici: stackoverflow.com/questions/29887805/....
OriginalL'auteur StKiller
Si vous avez une tâche noms de quelque chose d'autre que
qui exécute les tests unitaires, vous devriez être en mesure de générer le rapport de l'ajout de la tâche suivante de votre construction.gradle fichier:
Ce doit être appelée explicitement après la tâche à exécuter les tests unitaires, l'e.g:
OriginalL'auteur Rich Ashworth