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.
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
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 yourjacoco.exec
file. For example:sonar.jacoco.reportPaths=yourpath/jacoco.exec