How to tell Sonar to use my LCOV file for Code Coverage

Posted by Carisa Kissane on Tuesday, May 21, 2024

We have a Jenkins job that contains a bunch of javascript files. We build our project via grunt, and at the end of the build we run JSCover to run our unit tests and collect code coverage. It all works. We get a nice LCOV file.

We now want to upload the LCOV file to Sonar, and I'm not sure how to do this. We are building our project from Jenkins as a free style project.

I tried playing around with various project properties for sonar, but no love:

# project metadata (required) sonar.projectKey=my.project sonar.projectName=My Project sonar.projectVersion=1.0 # path to source directories (required) sonar.sources=src # The value of the property must be the key of the language. sonar.language=java (I tried js and javascript, but no love. Plugin is not installed. Actually, I don't care about the language, since I am already generating the LCOV file during the build. I just need Sonar to use this LCOV file.) # Advanced parameters sonar.javascript.jstestdriver.reportsfolder=target/surefire-reports sonar.javascript.jstestdriver.coveragefile=target/test-coverage/jscover.lcov sonar.dynamicAnalysis=reuseReports 

I suspect the problem is under the "Advanced Parameters", but I don't know how to tell Sonar, "Please use my LCOV file for Code Coverage".

1 Answer

You can have a look at this sample project where the path to a LCOV report is specified in the sonar-project.properties file.

Note that some property names have changed in the last version of the Javascript plugin.

7

ncG1vNJzZmirpJawrLvVnqmfpJ%2Bse6S7zGiorp2jqbawutJoaG5vZGqEc4KOoaawZaSkerWxy6VkrKeelr9uwM5mrKydXaLGbrjCqK1mnpmhsm6yzqtknKeUmnqku9WeqZqflQ%3D%3D