Tôi đã thêm vào một dự án một tập hợp các nguồn không có kiểm tra và tôi không muốn chúng làm hỏng số liệu thống kê kiểm tra của tôi. Tôi cấu hình Jacoco trong cách tiếp theo:Gradle Jacoco - báo cáo bảo hiểm bao gồm các lớp bị loại trừ trong cấu hình
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/**')
}
Nhưng dù sao, khi tạo báo cáo, Jacoco cũng bao gồm các lớp từ org.bla
Ai đó có thể giúp tôi?
EDIT
Sau khi một số lỗi, dường như tất cả các kết quả đầu ra mặc định được thêm vào org.gradle.testing.jacoco.tasks.JacocoReport#classDirectories
trong một phương pháp riêng org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
Đó là nhìn thấy được khi sử dụng mã ví dụ:
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
-----------------------------------------------------------
Vì vậy - câu hỏi là: có thể ghi đè bằng cách nào đó phương thức org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks
hoặc ghi đè hoàn toàn lớp org.gradle.testing.jacoco.plugins.JacocoPlugin
không?
Đây có phải là chỉ tho se 'classDirectories'? –
Xin lỗi, đã lâu lắm rồi, tôi không cập nhật tình trạng mới nhất của dự án. – StKiller
Tôi đã kết thúc câu hỏi của riêng mình tại đây: http://stackoverflow.com/questions/29887805/filter-jacoco-coverage-reports-with-gradle. –