【发布时间】:2014-03-15 08:25:33
【问题描述】:
我有一个多模块项目,想用 SonarQube 可视化集成代码覆盖率。我能够生成 test.exec 和 integTest.exec (JaCoCo),但是在强制 sonar-runner (sonar-jacoco-plugin) 使用它们时遇到问题。 sonar-runner 报告:
项目覆盖率设置为 0%,因为没有包含类的目录。
对于根项目(在其中生成 integTest.exec)确实如此,它没有源文件(但它不应该成为集成覆盖的问题)。我的配置:
(...)
sonar.dynamicAnalysis=reuseReports
sonar.jacoco.reportPath=build/jacoco/test.exec
sonar.jacoco.itReportPath=build/jacoco/integTest.exec
sonar.modules=mod1,mod2
sonar.sources=src/main/java,src/main/resources
sonar.tests=src/test/java,src/test/groovy,src/test/resources
sonar.binaries=build/classes/main,build/resources/main
该项目是使用 Gradle 构建的,但由于 CI 限制,我需要将 sonar-project.properties 与 sonar-runner 配置一起使用(不是 Gradle 的 sonar-runner 插件,过去对我有用)。
更新。在分析了 sonar-jacoco-plugin 源之后,我尝试创建一个定义为二进制目录的目录,但不幸的是 sonar-runner 根本没有为根模块设置 sonar.binaries 属性。
我的问题。是否有一种解决方法可以让我在带有 sonar-runner 的多模块项目中使用带有集成覆盖数据的文件?
【问题讨论】:
标签: gradle code-coverage jacoco sonar-runner sonarqube