问题:
我有一个 jacoco 项目,我希望能够过滤某些类和/或包。
相关文档:
我已阅读以下文档:
jacoco 官方网站: http: //www.eclemma.org/jacoco/index.html
gradle 的官方 jacoco 文档 : https ://gradle.org/docs/current/userguide/jacoco_plugin.html
官方 jacoco Github
问题,致力于报道: https ://github.com/jacoco/jacoco/wiki/FilteringOptions https://github.com/jacoco/jacoco/issues/14
相关 StackOverflow 链接:
使用 Sonarrunner 和 Gradle 从 Jacoco 报告中排除包(不使用 声纳)
JaCoCo - 从报告中排除 JSP (它似乎适用于 maven ,我正在使用 gradle )
Maven Jacoco 配置 - 从报告中排除类/包不起作用(它似乎适用于 maven ,我正在使用 gradle )
JaCoCo gradle 插件排除(无法让它工作)
Gradle Jacoco - 覆盖率报告包括配置中排除的类(看起来非常接近,它使用了 doFirst
,对我不起作用)
我尝试过的例子:
apply plugin: 'java'
apply plugin: 'jacoco'
buildscript {
repositories {
mavenCentral()
jcenter()
}
}
repositories {
jcenter()
}
jacocoTestReport {
reports {
xml {
enabled true // coveralls plugin depends on xml format report
}
html {
enabled true
}
}
test {
jacoco {
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpFile = file("$buildDir/jacoco/classpathdumps")
excludes = ["projecteuler/**"] // <-- does not work
// excludes = ["projecteuler"]
}
}
}
问题:
生成 jacoco 覆盖率报告时如何排除某些包和类?
原文由 Jared Burrows 发布,翻译遵循 CC BY-SA 4.0 许可协议
感谢,
Yannick Welsch
:在谷歌搜索、阅读 Gradle 文档并浏览旧的 StackOverflow 帖子后,我在官方 gradle 论坛上找到了这个答案!
来源: https ://issues.gradle.org/browse/GRADLE-2955
对于较旧的 gradle 版本 < 5.x 可能需要使用
classDirectories = files(classDirectories.files.collect {
而不是classDirectories.setFrom
我的
build.gradle
Java/Groovy 项目的解决方案:如您所见,我成功地向
exclude:
添加了更多内容,以便过滤一些包。来源: https ://github.com/jaredsburrows/CS-Interview-Questions/blob/master/build.gradle
Android等其他项目的自定义任务:
来源: https ://github.com/jaredsburrows/android-gradle-java-app-template/blob/master/gradle/quality.gradle#L59