我有一个简单的项目,需要运行JUnit测试,并让SonarQube使用SonarScanner扫描/运行JUnit测试结果。我把我的项目在Github hereSonarQube Jacoco JUnit:SonarScanner得到许多意想不到的问题
存在一些问题:
- 警告:类 “XXX” 是无法通过类加载器声纳访问(Reference)
- 没有jacoco-it.exec和jacoco-UT .exec,只在SonarScanner运行jacoco.exec
- 运行测试的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的测试,直到成功建立,它建立在文件夹目标一些文件和文件夹。
之后,我跑我的SonarScanner扫描我的项目,但我得到了这些问题。
我的问题:
- 我如何运行我的SonarQube扫描仪没有任何WARN?
- 如何在扫描JUnit结果时正确排除文件?因为我使用参考设置,并且Coverage仍然扫描文件
- 如何创建jacoco-it.exec和jacoco-ut.exec并在SonarScanner上运行它?
我的项目是在此基础上Reference
如果您使用的是Maven,则不需要'sonar-project.properties':请参考有关使用Maven扫描程序进行分析的文档 - http://docs.sonarqube.org/display/SCAN/Analyzing+with+ SonarQube + Scanner + for + Maven使用它应该足以避免许多配置问题,例如如警告'类“XXX”不可访问'。 'jacoco-ut.exec'和'jacoco-it.exec'分别是执行'jacoco-maven-plugin'的产品,用于单元测试和集成测试。 – Godin
我使用sonarqube和sonarscanner作为第三方。这就是为什么我有sonar-project.properties。我下载了SonarQube和SonarScanner的RAR,然后首先启动我的SonarQube,然后进入CMD,进入我的文件夹(sampleProject),然后运行扫描仪。 SonarScanner的设置基于sonar-project.properties上的问题 –
问:“我怎样才能在没有任何警告的情况下运行SonarQube扫描仪?”答:为Maven使用SonarQube扫描仪。 – Godin