你想达到什么目的
我想通过使用声纳扫描器来实现代码覆盖率,但在sonarqube仪表板上得到的代码覆盖率为0。
到目前为止,你尝试过什么方法来实现这个目标?
我在配置多模块java项目时,使用了 https:/github.comSonarSourcesonar-scanning-examplestreemastersonarqube-scanner-mavenmaven-multimodule。
并在基础目录下创建了sonar-project.properties文件,配置如下。
sonar.projectKey=org.sonarqube.sonarscanner-maven-aggregate
sonar.projectName=Sonar Scanner Maven Aggregate
sonar.projectVersion=1.0
sonar.language=java
sonar.java.binaries=.
如果我使用mvn sonar:sonar可以工作,但是用sonar-scanner就不行了。
用sonarqube 7.8可以正常工作。
如果有任何见解,我将感激不尽。
如果你的项目被设置为多模块,你必须将每个模块的覆盖率报告反馈给最后一个模块,该模块将作为构建的一部分运行(可能是集成测试模块)。
https:/community.sonarsource.comtin-sonarqub-8-2-code-coverage-is-always-showing-021666。
https:/docs.sonarqube.org最新分析发现。
https:/stackoverflow.coma15535970
按照Sonar团队在这个示例项目中提到的步骤,帮助了我https:/github.comSonarSourcesonar-scanning-examplestreemastersonarqube-scanner-mavenmaven-multimodule。
因为你已经按照这些步骤来做了,我缺少的是最后一个模块没有生成汇总报表,我是在之前的一个模块里做的,就是我们的集成测试模块。但是在我们的案例中还有一个部署模块
我解决了这个问题。
当运行声纳扫描命令时,我添加了xmlReportPaths作为定义属性,如sonar-scanner -Dsonar.coverage.jacoco.xmlReportPaths=teststargetsitejacoco-aggregatejacoco.xml,...teststargetsitejacoco-aggregatejacoco.xml。