我在某个文件夹中有一个maven java项目(它有一些单元测试),并在另一个不同的项目(不同的目录)中测试相同的代码。源代码和测试共享相同的父pom。现在我想使用JaCoCo生成代码覆盖率报告。
如何测量来源?如何在检测代码上运行测试?以及如何整合并获得结果报告?
Say Project ABC包含代码,项目XYZ包含测试用例。 注意:
答案 0 :(得分:0)
我有类似的问题。我通过改变jacoco报告路径的路径找到了解决方案:
<sonar.surefire.reportsPath>${project.basedir}/../target/surefire-reports</sonar.surefire.reportsPath>
<sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
我添加了这些属性并配置了jacoco插件以附加报告,而不是通过以下方式覆盖它们:
<configuration>
<append>true</append>
</configuration>
这样jacoco将报告写入多模块项目的基本目录。声纳插件找到并分析它们。
答案 1 :(得分:0)
在构建具有多个子模块的“参考应用程序”并尝试为子模块生成测试覆盖率并将它们推送到声纳库时,我遇到了问题。我遇到的问题是,由于子模块之间相互引用,因此生成的jacoco报告被覆盖,最终我得到了单个模块的结果。这可能与上面发布的问题不同,但是我确实通过在gradle中使用“追加”解决了这个问题,所以只想展示如何做到这一点。
在每个模块的build.gradle文件中,我有:
testOptions {
unitTests.returnDefaultValues = true
unitTests.includeAndroidResources = true
unitTests.all {
jacoco {
append = true
includeNoLocationClasses = true
}
systemProperty 'robolectric.enabledSdks', '28'
}
}
s