【问题标题】:JaCoCo with microservice project architecture?JaCoCo 与微服务项目架构?
【发布时间】:2016-08-31 20:19:01
【问题描述】:

我的项目包含 6 个 Java 微服务,我正在尝试弄清楚如何将 Jacoco 的 html 报告合并为一份整体覆盖率报告。就目前而言,我最终会为每个服务生成一份报告,如果有一个汇总的报告会很好,这样我就可以更轻松地将其放入我们的 CI 中以实现可见性等。

我尝试了各种我在网络搜索中找到的东西,但是当我尝试这些建议时,我最终得到了一个空的覆盖文件。

这是我的 gradle 文件:

subprojects {
apply plugin: 'jacoco'
jacoco {
    toolVersion = "0.7+"
    reportsDir = file("$buildDir/reports/customJacocoReportDir")
}
jacocoTestReport {
    reports {
        xml.enabled true
        csv.enabled false
        html.destination "$buildDir/reports/jacocoHtml"
    }
}
test {
finalized by jacocoTestReport
...
}

我运行 gradle test 来运行测试并使用上述方法获取每个服务的报告输出,但我真的很难将它们合并到一个单独的 html 报告中。如果有人成功地做到了这一点,请告诉我。谢谢。

【问题讨论】:

    标签: gradle code-coverage jacoco


    【解决方案1】:

    目前我们遇到了同样的问题,jacoco 代理有一个叫做“合并”的 maven 目标。您可以指定源文件并运行它:

    jacoco:merge

    全名:

    org.jacoco:jacoco-maven-plugin:0.7.8-SNAPSHOT:merge

    说明:

    Mojo 用于将一组执行数据文件 (*.exec) 合并到一个文件中

    属性:

    • 需要执行 Maven 项目。
    • 目标是线程安全的并支持并行构建。
    • 自版本:0.6.4.
    • 默认绑定到生命周期阶段:generate-resources。
    <fileSets>
      <fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
        <directory>${project.build.directory}</directory>
        <includes>
          <include>*.exec</include>
        </includes>
      </fileSet>
    </fileSets>
    

    实际链接:http://www.eclemma.org/jacoco/trunk/doc/merge-mojo.html

    希望对你有帮助:D

    【讨论】: