我有一个多模块项目,并希望可视化集成代码覆盖与SonarQube。我能够生成test.exec和integTest.exec (JaCoCo),但是迫使声纳转轮(声呐-jacoco-plugin)使用它们有问题。声纳跑者报告:
项目覆盖率设置为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 (不是以前为我工作的Gradle的声纳转轮插件)。
更新。在分析了声呐-jacoco插件源代码之后,我尝试创建一个定义为二进制目录的目录,但不幸的是,声纳运行程序根本没有为根模块设置sonar.binaries属性。
我的问题。有没有一个解决办法,可以让我使用文件与集成覆盖数据在一个多模块项目与声纳运行?
发布于 2014-02-16 00:39:43
作为一个丑陋的解决方案,我能够将报表路径配置为:
sonar.jacoco.reportPath=../build/jacoco/test.exec
sonar.jacoco.itReportPath=../build/jacoco/integTest.exec对于二级模块(模块mod1,它有自己的子模块mod1a和mod1b):
mod1.sonar.jacoco.reportPath=../../build/jacoco/test.exec
mod1.sonar.jacoco.itReportPath=../../build/jacoco/integTest.exec尽管如此,这是非常容易出错,我希望其他人会有一个更好的想法。
https://stackoverflow.com/questions/21805397
复制相似问题