Sonar does not retrieve the coverage information for my project when paths are absolute in my lcov file. For the file:
TN:
SF:/mnt/vg01-data01/jenkins/<jenkins.myhost.com>/jenkins_home/workspace/<job1>/src/app.js
FN:,(anonymous_0)
FN:,(anonymous_1)
FNF:2
FNH:2
FNDA:1,(anonymous_0)
FNDA:2,(anonymous_1)
DA:3,1
DA:4,1
DA:6,1
DA:7,1
DA:8,1
DA:9,1
DA:11,1
DA:18,1
DA:19,1
DA:22,2
DA:27,1
LF:11
LH:11
BRF:0
BRH:0
end_of_record
....
I get the following warnings:
...
05:06:27.565 INFO: Analysing [/srv/jenkins/<jenkins.myhost.com>/jenkins_home/workspace/<job1>/coverage/lcov.info]
05:06:27.574 DEBUG: Default value of zero will be saved for file: src/app.js
05:06:27.574 DEBUG: Because was not present in LCOV report.
05:06:27.578 DEBUG: Default value of zero will be saved for file: src/app.spec.js
05:06:27.578 DEBUG: Because was not present in LCOV report.
05:06:27.579 DEBUG: Default value of zero will be saved for file: src/js/form/form.ctrl.js
05:06:27.579 DEBUG: Because was not present in LCOV report.
05:06:27.580 DEBUG: Default value of zero will be saved for file: src/js/form/form.module.js
05:06:27.580 DEBUG: Because was not present in LCOV report.
05:06:27.581 DEBUG: Default value of zero will be saved for file: src/js/success/success.ctrl.js
...
However, by default karma (and istambul) are generating file with absolute paths.
If I change the paths to make them relative, sonarqube reports the coverage correctly. However, I must ensure a "lcov patch" script is always run before reporting to sonar.
Does sonar support absolute paths? What are other teams doing for this issue? These are the versions I am using:
- karma@1.3.0 & karma-coverage@1.1.1
- sonar 6.1 and JavaScript plguin 2.14
Update: I replaced the file and log I see with the exact ones from the jobs (I still must change the name of the host and job for security reasons.)
Update March 2016: I have sent a Pull Request to Istambul to enable to generate lcov file with relative paths. I expect this to solve this issue https://github.com/gotwarlost/istanbul/pull/771