簡體   English   中英

Gradle jacoco多項目。 如何在終端中輸出所有項目的代碼覆蓋率?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM