gpt4 book ai didi

Gradle Jacoco - 覆盖报告包括配置中排除的类

转载 作者:行者123 更新时间:2023-12-04 03:58:34 25 4
gpt4 key购买 nike

我在一个项目中添加了一组没有测试的源,我不希望它们破坏我的测试覆盖率统计数据。我以以下方式配置了 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

有人能帮我吗 ?

编辑

经过一些调试,似乎所有默认输出都添加到 org.gradle.testing.jacoco.tasks.JacocoReport#classDirectories在私有(private)方法中 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类(class) ?

最佳答案

好的,找到了解决方法:

jacocoTestReport.doFirst{
classDirectories = files('build/classes/main/com/bla')
}

这将覆盖 JacocoPlugin 类设置的 classDirectories。

关于Gradle Jacoco - 覆盖报告包括配置中排除的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394427/

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