Cobertura - 课程不再进行检测

时间:2016-12-21 08:17:13

标签: java jenkins gradle cobertura

我在Jenkins-build中使用gradle-cobertura-plugin。昨天我在这个插件中修复了一个覆盖已配置的auxiliaryClasspath的问题。此问题阻止了覆盖率报告中存在某些类。修复很简单:

我更改了以下内容:

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 - 文件夹中的类不再被检测了!滚动所有内容(build.gradle,卸载我的插件,清除gradle缓存等)行为保持不变。因为它在本地工作,我想知道导致这个问题的原因。

我认为有些事情可能会被记录并且默默地被忽略,但是我不知道在哪里查找这些信息。 Jenkins日志很干净,所以我认为为负责工具的代码添加一个记录器可能会有所帮助。不幸的是,我不知道要启用什么记录器。 org.sourceforge.cobertura没有输出任何内容。

所以我的问题是:是否有其他人看到这种行为,并可能提出如何解决此问题的线索?

1 个答案:

答案 0 :(得分:0)

好的,我明白了。经过多次试验和错误后,我发现coverageExcludes-property的一点变化是罪魁祸首。在多次更改之后,将再次对类进行检测。有趣的是,它确实在本地工作,但不是在詹金斯。如果它再次发生,我想我必须深入研究一下。

现在我很高兴它有效。 : - )