[英]Gradle jacoco multi project. How to output the code coverage of all the project in the terminal?
我正在使用Gradle jacoco
插件,並且在gradle多項目中進行了JUnit
測試。
我已經安裝了jacoco以便向sonarqube報告我的代碼覆蓋率,而我確實這樣做了。
Gitlab-CI還提供了代碼覆蓋率的標記,我只需要在終端中輸出代碼覆蓋率並使用正則表達式來找到它。
有沒有辦法在終端中輸出所有項目的代碼覆蓋率?
是的你可以。 可能的方式:
1)使用Gradle插件gradle-console-reporter向控制台報告各種摘要。 支持JUnit,JaCoCo和Cobertura報告。
在您的情況下,以下輸出將打印到控制台:
...
BUILD SUCCESSFUL
Total time: 4.912 secs
Coverage summary:
project1: 72.2%
project2-with-long-name: 44.4%
然后你可以使用覆蓋面與正則表達式Gitlab的.gitlab-ci.yml
解析代碼覆蓋。
2)第二種選擇有些棘手。 您可以打印完整的JaCoCo HTML報告(例如,使用cat target/site/jacoco/index.html
),然后使用正則表達式(請參見此文章 )或grep
(請參見此文章 )來分析覆蓋率。
AFAIK Gradle不支持此功能,每個項目都單獨處理。
為了支持您的用例,可以創建一些聚合任務來解析報告並更新根項目中的某些值,最后將該值打印到stdout。
用近似代碼更新解決方案:
subprojects {
task aggregateCoverage {
// parse report from each module into ext.currentCoverage
rootProject.ext.coverage += currentCoverage
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.