我有一个使用maven创建的模块化项目。这是我的项目的树:
project
-module1
-src/main/java
-src/test
-module2
-src/main/java
-src/test
-module3
-src/main/java
-src/test
-module4
-src/main/java
-src/test
-src
在声纳配置文件中,我放置了:
sonar.sources=.
sonar.tests=.
sonar.test.inclusions=**/*Test*/**
sonar.exclusions=**/*Test*/**
我在项目中进行的单元测试是使用Junit开发的。 使用此配置,我仍然有 0%的测试覆盖率。
配置是否正确?
答案 0 :(得分:1)
注意不要将分析unittest文件误认为正在运行单元测试并生成覆盖率。
Sonarqube不会根据您配置为正确分析的单元测试来检测/计算覆盖率。 Sonarqube只会分析声纳问题。
对于单元测试覆盖率,您需要使用例如。 jacoco在测试运行期间,并提供声纳分析过程中的jacoco报告以及理想的单元测试报告,例如:
sonar.junit.reportPaths=<paths to junit xml - comma separated>
sonar.jacoco.reportPaths=<paths to jacoco reports - comma separated>
这意味着,要获取此类数据,理想情况下,应该在运行扫描之前首先运行测试,生成这些报告,并将这些属性提供给扫描仪。
有关如何实现此目的的更多详细信息,我建议: