Step1:在pom.xml配置新的profile来支持Jacoco插件
coverage-per-test
org.apache.maven.plugins
maven-surefire-plugin
2.13
listener
org.sonar.java.jacoco.JUnitListener
org.sonarsource.java
sonar-jacoco-listeners
3.8
test
Step2:在pom.xml配置sonar服务器链接
http://localhost:9000
Step3:运行单元测试及覆盖率分析
如果仅仅运行单元测试,不分析覆盖率:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install
如果运行单元测试的同时分析覆盖率:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Pcoverage-per-test
Step4:执行代码扫描,并上传覆盖率到sonar上
mvn sonar:sonar
正常情况下在sonar上面就能看到代码覆盖率和测试通过率了,如图:
如果没有看到测试结果检查maven有没有一下输出:
T E S T S
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
如果没有的话,请pom.xml搜索true,然后删除掉。
Step5:提交代码提交单元测试及分析结果,更新Jenkins的配置
需要在Jenkins job里面添加相应的maven命令,这样子Jenkins才能自动分析代码覆盖率并上传到sonar.