SonarCloud显示了测试课程的覆盖范围,尽管测试课程未包括在内

时间:2019-10-18 07:57:08

标签: java sonarqube code-coverage sonarcloud

我已经为Java项目设置了SonarCloud分析,当在git存储库上创建PR时,该项目就会触发分析。

用于触发我的.travis.yml文件中的支票的命令是:

mvn clean compile test dependency:copy-dependencies
sonar-scanner 
-Dsonar.projectKey=project-key 
-Dsonar.java.binaries=project/target/classes 
-Dsonar.java.test.binaries=project/target/test-classes 
-Dsonar.java.libraries=project/target/dependency 
-Dsonar.java.test.libraries=project/target/dependency 
-Dsonar.test.exclusions=project/src/test/**/*Test.java

期待什么
如果有人在具有测试类的请求请求中签入代码,则不应考虑将其涵盖。应该只有目标类。

正在发生的事情
如果我签入2个课程SonarSample.javaSonarSampleTest.java,则SonarCloud将显示两个课程的覆盖范围。

enter image description here 如何排除测试类的覆盖率数据?

1 个答案:

答案 0 :(得分:0)

请注意,覆盖范围显示为分类为来源的文件,而不显示分类为测试的文件。

这似乎是一个错误:

-Dsonar.test.exclusions=project/src/test/**/*Test.java

如果您希望将*Test.java文件视为测试,从而将它们从源中排除,从而从覆盖率计算中将它们排除,则将该行更改为 inclusion 而不是排除

-Dsonar.test.inclusions=project/src/test/**/*Test.java

顺便说一句:为什么要使用sonar-scanner而不是mvn sonar:sonar