我在我的Jenkins版本中使用gradle-cobertura-plugin。昨天,我修复了此插件中的一个问题,该问题覆盖了已配置的assistantClasspath。该问题阻止了某些类出现在覆盖率报告中。解决方法非常简单:
我更改了以下内容:
auxiliaryClasspath = project.files("${project.buildDir.path}/intermediates/classes/${classesDir}")
至
if (auxiliaryClasspath != null) {
auxiliaryClasspath += project.files("${project.buildDir.path}/intermediates/classes/${classesDir}")
} else {
auxiliaryClasspath = project.files("${project.buildDir.path}/intermediates/classes/${classesDir}")
}
使用
gradle cobertura
在本地运行构建,一切正常,报告中显示缺少的类。在Jenkins上安装了修补程序的插件版本后,Jenkins的覆盖率降至零。
环顾四周,我发现
instrumented_classes
-folder中的类不再受测!回滚所有内容(build.gradle,卸载我的插件,清除gradle缓存等),行为保持不变。因为它在本地工作,所以我想知道是什么导致了此问题。我认为确实存在一些出乎意料的错误,该错误可能已被记录并被默默忽略,但是我不知道在哪里可以找到这些信息。 Jenkins日志很干净,因此我认为为负责检测的代码添加记录器可能会有所帮助。不幸的是,我不知道要启用什么记录器。
org.sourceforge.cobertura
没有输出任何内容。所以我的问题是:还有其他人看到过这种行为,并且可能会提供线索来解决此问题吗?
最佳答案
好,我知道了。经过反复试验,我发现覆盖范围不大是属性(property)的根本原因。多次更改后,将再次检测类。有趣的是,它确实在本地工作,但不适用于 Jenkins 。如果再次发生,我认为我必须对此进行更深入的研究。
现在,我很高兴它能起作用。 :-)
关于java - Cobertura-不再检测类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41258088/