1

我已经为一个 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 显示这两个课程的覆盖范围,会发生什么。

在此处输入图像描述 如何将测试类排除在覆盖数据的考虑范围之外?

4

1 回答 1

0

请注意,分类为的文件会显示覆盖率,而分类为测试的文件不会显示覆盖率。

这看起来像一个错误:

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

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

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

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

于 2019-10-18T11:50:36.183 回答