不同的 jacoco 覆盖导致 github 动作环境
Different jacoco coverage results in a github action environment
jacoco 覆盖率报告在 运行 在 CI 环境中生成不同结果时是否有任何原因?
迁移到 Java 17 后出现以下情况。当我 运行 ./gradlew clean build
生成报告并且 jacocoTestCoverageVerification
没有失败。
但是当在 github 运行ner 中执行相同的命令时,我得到了非常不同的结果,覆盖率报告也使用不同的覆盖率值创建,有些 类 只是覆盖验证失败。
很遗憾,我无法提供代码片段,但我已经试过了:
- 运行 我机器上的 github 运行ner,具有相同的 jdk 如果我只是 运行 构建它会产生不同的结果在命令行中:(
- 为测试任务添加 jvmargs noverify
- 运行 容器中的 github 操作而不是自托管,相同的结果
- 其他开发者也在不同的机器上构建了项目,没有错误
- 运行 与 ci
相同的构建命令
所以似乎 github 动作环境中的某些东西产生了这种行为。
版本:
- jacoco 插件:0.8.7
- gradle 7.3
- java 17
这里的问题是 lombok 配置文件。原来兼容java17和Gradle7.3的新版lombok插件不再生成lombok.config
文件了。
在之前的版本中,这些文件是由io.freefair.lombok
插件生成的,我们把它们放在.gitignore中。因此,本地构建工作正常,因为文件仍然存在。
我通过查看生成的报告意识到这一点,我注意到 lombok 类 仅由 CI 分析。
在其他情况下,类似的问题可能与此相关:
https://www.eclemma.org/jacoco/trunk/doc/classids.html
jacoco 覆盖率报告在 运行 在 CI 环境中生成不同结果时是否有任何原因?
迁移到 Java 17 后出现以下情况。当我 运行 ./gradlew clean build
生成报告并且 jacocoTestCoverageVerification
没有失败。
但是当在 github 运行ner 中执行相同的命令时,我得到了非常不同的结果,覆盖率报告也使用不同的覆盖率值创建,有些 类 只是覆盖验证失败。
很遗憾,我无法提供代码片段,但我已经试过了:
- 运行 我机器上的 github 运行ner,具有相同的 jdk 如果我只是 运行 构建它会产生不同的结果在命令行中:(
- 为测试任务添加 jvmargs noverify
- 运行 容器中的 github 操作而不是自托管,相同的结果
- 其他开发者也在不同的机器上构建了项目,没有错误
- 运行 与 ci 相同的构建命令
所以似乎 github 动作环境中的某些东西产生了这种行为。
版本:
- jacoco 插件:0.8.7
- gradle 7.3
- java 17
这里的问题是 lombok 配置文件。原来兼容java17和Gradle7.3的新版lombok插件不再生成lombok.config
文件了。
在之前的版本中,这些文件是由io.freefair.lombok
插件生成的,我们把它们放在.gitignore中。因此,本地构建工作正常,因为文件仍然存在。
我通过查看生成的报告意识到这一点,我注意到 lombok 类 仅由 CI 分析。
在其他情况下,类似的问题可能与此相关: https://www.eclemma.org/jacoco/trunk/doc/classids.html