maven - 如何让 jacoco 知道源/类在模块之外

标签 maven jacoco

模块 A 是具有所有集成测试的独立模块。如果源代码和测试位于一个模块中,Maven-Jacoco-Sonar 工作正常。

由于模块 A 完全是一个不同的模块,我们无法轻松生成 jacoco 报告。因为,jacoco 无法在模块 A 中找到源来衡量报告的覆盖率。源文件都位于不同的模块中。 jacoco 需要有可用的类文件和源文件才能生成报告。我们需要在生成 jacoco 报告时将它们相应地链接到模块 A,以便可以轻松地将 jacoco-it.exec 拉到 Sonar 以显示覆盖率分析。

目前在这种情况下,
根据 jacoco 代理触发的类,但没有可用的源/类文件

如果有人有解决方案如何实现上述功能,请帮助我。这对我很有帮助。

最佳答案

尝试将以下内容添加为您的主要 src

 def debugTree = [fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter),
                 fileTree(dir: "${project(":your_module_name").projectDir}/build/intermediates/classes/debug", excludes: fileFilter)]
 def mainsrc = [fileTree(dir:"${project(":your_module_name").projectDir}/src/main/java"),
                     fileTree(dir:"${project.projectDir}/src/main/java")]
 sourceDirectories = files(mainsrc)
 classDirectories = files(debugTree)

这将包括您在创建 jacoco 报告时要使用的外部子模块文件。

关于maven - 如何让 jacoco 知道源/类在模块之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43452946/

相关文章:

java - 在同一个构建中执行 JUnit 4 和 JUnit 5 测试

java - 两个不同的 jar x,y 依赖于不同版本的 z。用户如何在他的应用程序中同时拥有 x,y ?

Maven 版本标签

java - 如何使用 antrun 插件通过 maven 将类作为 jar 文件运行

android - Gradle JacocoTestReports 任务在 bamboo 构建服务器上被跳过,但在本地机器上构建良好

android - (Android - Gradle)Jacoco 覆盖范围不排除某些类文件

java - Maven构建多模块项目成功,Eclipse报错

playframework - Sonar-Runner没有索引任何文件

java - JaCoCo 报告在 Jenkins : java. lang.ArrayIndexOutOfBoundsException 中失败

android - 使用 espresso 和 ui automator 在 android studio 2.3 中生成测试覆盖率报告