Я добавил в проект набор источников, которые не имеют тестов, и я не хочу, чтобы они испортили мою статистику охвата тестирования. Я настроил Jacoco следующим способом:Gradle Jacoco - отчеты о покрытии включают в себя классы, исключенные из конфигурации
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/**')
}
Но в любом случае, при формировании отчета, Jacoco также включает в себя классы от org.bla
Может кто-нибудь мне помочь?
EDIT
После некоторой отладки, оказывается, что все выходы по умолчанию добавляются org.gradle.testing.jacoco.tasks.JacocoReport#classDirectories
в частном методе org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
Это видно при использовании такого кода:
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
-----------------------------------------------------------
Так что - возникает вопрос: возможно ли переопределить метод org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
или полностью переопределить класс org.gradle.testing.jacoco.plugins.JacocoPlugin
?
Включает ли это только tho se 'classDirectories'? –
Извините, это было давно, я не в курсе последнего состояния проекта. – StKiller
В конце концов я задал свой вопрос: http://stackoverflow.com/questions/29887805/filter-jacoco-coverage-reports-with-gradle. –