我在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
没有输出任何内容。
所以我的问题是:是否有其他人看到这种行为,并可能提出如何解决此问题的线索?
答案 0 :(得分:0)
好的,我明白了。经过多次试验和错误后,我发现coverageExcludes-property的一点变化是罪魁祸首。在多次更改之后,将再次对类进行检测。有趣的是,它确实在本地工作,但不是在詹金斯。如果它再次发生,我想我必须深入研究一下。
现在我很高兴它有效。 : - )