我已经为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.java
和SonarSampleTest.java
,则SonarCloud将显示两个课程的覆盖范围。
答案 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
?