gradle - JaCoCo 具有微服务项目架构?

标签 gradle code-coverage jacoco

我的项目由 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 报告中。如果有人成功完成此操作,请告诉我。谢谢。

最佳答案

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

jacoco:合并

全名:

org.jacoco:jacoco-maven-plugin:0.7.8-SNAPSHOT:合并

描述:

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

属性:

  • 需要执行 Maven 项目。
  • 目标是线程安全的并支持并行构建。
  • 自版本:0.6.4。
  • 默认绑定(bind)到生命周期阶段: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

关于gradle - JaCoCo 具有微服务项目架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39003273/

相关文章:

c# - 从 Visual Studio 2015 中的代码覆盖率中排除自动属性

java - 有什么方法可以排除类别以获得覆盖率%?

java - Jacoco Gradle Plugin 及其对测试任务的依赖

java - gradle项目构建失败

java - 从单个源文件夹 Gradle 多个 jar

android - react native 错误:重复的资源, Assets 出现在某些屏幕中,而不出现在其他人的android版本APK中

python - 如何使用coverage.py从覆盖报告中排除南迁移

ant - 如果使用 jacoco 检查元素的代码覆盖率低于阈值,Gradle jacoco 会失败

android - 多模块 Android 项目中的全局代码覆盖率 : merge code coverage reports (Unit & UI tests)

java - 将现有 gradle 项目导入 IntelliJ IDEA 时出错