gpt4 book ai didi

gradle - 如何使用Gradle从JaCoCo测试报告中排除隐式Groovy闭包类

转载 作者:行者123 更新时间:2023-12-03 03:49:51 24 4
gpt4 key购买 nike

如果在Groovy项目上使用JaCoCo,则在覆盖率报告中会得到很多隐式创建的闭包类。链接到它们的源是封闭的类。封闭类的coverage报告还包含闭包coverage,因此它不会为coverage报告添加任何值。更糟糕的是,它伪造了承保范围报告,因为在封闭统计中要涵盖的结单在整个统计中被计算两次。

那么,如何从生成的JaCoCo覆盖率报告中排除那些关闭?

最佳答案

您可以使用以下代码段从JaCoCo记录中排除隐式闭包类,这不会阻止将语句记录在闭包类中

test {
jacoco.excludes = ['**/*$*_closure*']
}

使用该摘要,不再记录覆盖范围,但是现在所有关闭都在报告中显示为0%覆盖范围,因此也减少了总体覆盖范围统计信息。

添加以下代码段将从JaCoCo报告中删除闭包类,从而也将提供更有意义的总体统计信息。上面的代码段并不是必需的,它只是带来了一点性能改进,因为不需要为报告记录和转换覆盖范围,因此我建议同时使用这两个代码段。
jacocoTestReport {
doFirst {
classDirectories = classDirectories.collect { fileTree(it) { exclude '**/*$*_closure*' } }.sum()
}
}

如果您有多个 TestJacocoReport任务要通过这种方式进行修改,那么当然也可以像
tasks.withType(Test) {
jacoco.excludes = ['**/*$*_closure*']
}

tasks.withType(JacocoReport) {
doFirst {
classDirectories = classDirectories.collect { fileTree(it) { exclude '**/*$*_closure*' } }.sum()
}
}

关于gradle - 如何使用Gradle从JaCoCo测试报告中排除隐式Groovy闭包类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39453696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com