问题
I'm using Jenkins+Jacoco+Sonarqube to test my code. In Jenkins, my mvn command is:
clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true sonar:sonar
And I add action 'record jacoco coverage report' after build.
But the result is, jenkins works as below:
It shows coverage report and other information. But I cannot get coverage percentage in sonarQube therefore the quality gate in Sonarqube cannot be passed.
I guess that sonar cannot find the coverage report because it's not exist in the 'code' tab in SonarQube.
Please help me, I need the solution desperately.
回答1:
In order to display your coverage in SonarQube, you should configure your sonarqube.properties file. In sonar properties, there is a parameter called sonar.jacoco.reportPaths
. You should add this parameter by giving the path of your jacoco.exec
file. For example:
sonar.jacoco.reportPaths=yourpath/jacoco.exec
回答2:
sonar reads the jacocoexec file created by the plugin execution , you can under the target fodler of your project if the file is getting created, if the path of the file is different you need to provide it in the sonar properties file
来源:https://stackoverflow.com/questions/51798478/coverage-report-works-in-jenkins-using-jacoco-but-i-cannot-get-coverage-report-i