在 CI 環境中運行 jacoco 覆寫率報告時,是否有任何理由產生不同的結果?
遷移到 Java 17 后,我遇到了以下情況。當我運行時./gradlew clean build,生成了報告并且jacocoTestCoverageVerification沒有失敗。
但是當在 github runner 中執行相同的命令時,我得到了非常不同的結果,覆寫率報告也使用不同的覆寫率值創建,一些類只是未通過覆寫率驗證。
不幸的是,我無法提供代碼片段,但我已經嘗試過:
- 在我的機器上運行 github runner,使用相同的 jdk,如果我只是在命令列中運行構建,它會產生不同的結果:(
- 為測驗任務添加 jvmargs noverify
- 在容器中運行 github 操作而不是自托管,結果相同
- 其他開發人員也在不同的機器上構建了該專案,沒有錯誤
- 運行 ci 的相同構建命令
所以似乎 github action env 中的某些東西會產生這種行為。
版本:
- jacoco 插件:0.8.7
- 等級 7.3
- 爪哇17
uj5u.com熱心網友回復:
這里的問題是 lombok 組態檔。事實證明,與 java 17 和 Gradle 7.3 兼容的新版 lombok 插件不再生成lombok.config檔案。
在以前的版本中,這些檔案是由io.freefair.lombok插件生成的,我們將它們放在 .gitignore 中。因此,本地構建作業得很好,因為檔案仍然存在。
我通過查看生成的報告意識到了這一點,我注意到 lombok 類僅由 CI 分析。
在其他情況下,類似的問題可能與此有關:https : //www.eclemma.org/jacoco/trunk/doc/classids.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/364744.html
標籤:爪哇 等级 github-actions 雅可可 java-17
