如何在SonarQube 6.7中分析单元测试文件?

时间:2018-12-25 14:58:28

标签: java unit-testing junit sonarqube sonarlint

我有一个使用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%的测试覆盖率。

enter image description here

配置是否正确?

1 个答案:

答案 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>

这意味着,要获取此类数据,理想情况下,应该在运行扫描之前首先运行测试,生成这些报告,并将这些属性提供给扫描仪。

有关如何实现此目的的更多详细信息,我建议: