【发布时间】:2017-04-02 06:44:36
【问题描述】:
我有一个简单的项目需要运行 JUnit 测试并让 SonarQube 使用 SonarScanner 扫描/运行 JUnit 测试结果。我把我的项目放在Github here
有一些问题:
- 警告:类“XXX”无法通过类加载器声纳访问 (Reference)
- 没有 jacoco-it.exec 和 jacoco-ut.exec,只在 SonarScanner 上运行 jacoco.exec
- 在运行 Test JUnit 时无法排除某些文件,因为我只想在我的服务文件夹中运行测试 (Reference)
这是我的 sonar-project.properties :
# Required metadata
sonar.projectKey=com.example:Sample
sonar.projectName=Java :: Example :: SonarQube Scanner
sonar.projectVersion=1.0
# Comma-separated paths to directories with sources (required)
sonar.sources=src
sonar.exclusions=src/main/resources/**
#sonar.test.inclusions=src/main/java/com/example/service/**, src/test/java/**
#sonar.test.exclusions=src/main/java/com/example/controller/**
# Encoding of the source files
sonar.sourceEncoding=UTF-8
#Jacoco
sonar.junit.reportsPath=target/surefire-reports
sonar.jacoco.reportPath =target/jacoco.exec
sonar.jacoco.reportMissing.force.zero=true
sonar.java.binaries=target/classes/**
#sonar.java.libraries=libs/**
当我运行 Maven 测试直到构建成功时,它会在文件夹 Target 中创建一些文件和文件夹。
之后我运行 SonarScanner 来扫描我的项目,但我遇到了这些问题。
我的问题:
- 如何在没有任何警告的情况下运行 SonarQube 扫描仪?
- 扫描 JUnit 结果时如何正确排除文件?因为我使用参考设置,Coverage 仍然会扫描文件
- 如何创建 jacoco-it.exec 和 jacoco-ut.exec 并在 SonarScanner 上运行?
我的项目就是基于这个Reference
【问题讨论】:
-
如果您使用 Maven,则不需要
sonar-project.properties:请参阅有关使用 Scanner for Maven 进行分析的文档 - docs.sonarqube.org/display/SCAN/… 的使用应该足以避免许多配置问题,例如比如警告Class "XXX" is not accessible。jacoco-ut.exec和jacoco-it.exec是jacoco-maven-plugin执行的产物,分别用于单元测试和集成测试。 -
我使用 sonarqube 和 sonarscanner 作为第三方。这就是我有 sonar-project.properties 的原因。我下载了 SonarQube 和 SonarScanner 的 RAR,然后首先启动我的 SonarQube,然后转到 CMD,转到我的文件夹(sampleProject),然后运行我的 Scanner。我的 SonarScanner 设置在 sonar-project.properties 上
-
问:“如何在没有任何警告的情况下运行我的 SonarQube 扫描仪?”答:使用 SonarQube Scanner for Maven。
标签: maven sonarqube sonarqube-scan