Cobertura - 类 不再检测

Cobertura - classes are not instrumented anymore

我在我的 Jenkins 构建中使用 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 没有输出任何东西。

所以我的问题是:是否有其他人看到此行为并可能提供解决此问题的线索?

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

现在我很高兴它能正常工作。 :-)