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

How to analyze unit test files in SonarQube 6.7?

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

配置是否正确?

注意不要将 analyzing unittest-files 误认为 运行ning unittests and generating coverage.

Sonarqube 不会 detect/compute 基于您配置为正确分析的单元测试的覆盖范围。 Sonarqube 只会分析它的 sonarqube 问题。

对于单元测试覆盖率,您需要使用例如。测试期间的 jacoco 运行,并提供 jacoco 报告,理想情况下是声纳分析期间的单元测试报告,如:

sonar.junit.reportPaths=<paths to junit xml - comma separated>
sonar.jacoco.reportPaths=<paths to jacoco reports - comma separated>

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

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