10
votes

I used Jacoco eclipse plugin to measure unit test coverage and I was able to export a report using it. I want to integrate that report with sonar so I gave the path to it in the project properties file. My properties file looks like this

# Required metadata
sonar.projectKey=key
sonar.projectName=name
sonar.projectVersion=1.0
sonar.jacoco.reportPath=jacoco.exec
sonar.tests=junit
sonar.dynamicAnalysis=reuseReports
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportMissing.force.zero=true
# Comma-separated paths to directories with sources (required)
sonar.sources=src

# Comma-separated paths to directories with tests (optional)
sonar.tests=test

# Encoding of the source files
sonar.sourceEncoding=UTF-8

# Language
sonar.language=java

When I executed sonar-runner the following lines were there in the console output

16:23:13.219 INFO  - Sensor JaCoCoItSensor...
16:23:13.219 INFO  - No JaCoCo analysis of project coverage can be done since there is no class files.
16:23:13.219 INFO  - Sensor JaCoCoItSensor done: 0 ms
16:23:13.219 INFO  - Sensor JaCoCoOverallSensor...
16:23:13.219 INFO  - Sensor JaCoCoOverallSensor done: 0 ms
16:23:13.219 INFO  - Sensor JaCoCoSensor...
16:23:13.219 INFO  - No JaCoCo analysis of project coverage can be done since there is no class files.

Also the unit test coverage widget indicated "No Data". Why am I not able to get Sonar to display the coverage results? What is the correct way to do this? This is my first experience with Jacoco and I'm also new to Sonar, so detailed guides are very much appreciated.

1
Have you tried specifying "sonar.binaries" property that points to the folder where your classes are compiled?Fabrice - SonarSource Team

1 Answers

13
votes

You must specify "sonar.binaries" property that points to the folder where your classes are compiled.