Ich habe zu einem Projekt eine Reihe von Quellen hinzugefügt, die keine Tests haben, und ich will nicht, dass sie meine Testabdeckung Statistiken verderben. Ich konfigurierte Jacoco im nächsten Weg:Gradle Jacoco - Berichterstattung umfasst Klassen in der Konfiguration ausgeschlossen
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/**')
}
Aber wie auch immer, wenn Sie den Bericht zu erzeugen, Jacoco enthält auch Klassen aus org.bla
Kann mir jemand helfen?
EDIT
Nach einigen Debugging, scheint es, dass alle Standardausgänge org.gradle.testing.jacoco.tasks.JacocoReport#classDirectories
in einer privaten Methode hinzugefügt werden org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
, die sichtbar ist, wenn ein solcher Code verwenden:
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
-----------------------------------------------------------
So - die Frage ist: ist es möglich, irgendwie org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
Methode überschreiben oder überschreiben komplett org.gradle.testing.jacoco.plugins.JacocoPlugin
Klasse?
Ist dies nur tho se 'classDirectories'? –
Sorry, es war lange her, ich bin nicht auf dem neuesten Stand des Projekts. – StKiller
Ich landete meine eigene Frage hier: http://StackOverflow.com/Questions/29887805/Filter-Jacoco-Coverage-Reports-with-gradle. –