如何告诉Sonar使用我的LCOV文件进行代码覆盖

gra*_*aii 7 javascript jenkins jscoverage sonarqube

我们有一个包含一堆javascript文件的Jenkins作业.我们通过grunt构建我们的项目,在构建结束时,我们运行JSCover来运行我们的单元测试并收集代码覆盖率.一切正常.我们得到一个不错的LCOV文件.

我们现在想将LCOV文件上传到Sonar,我不知道该怎么做.我们正在从Jenkins构建我们的项目作为一个自由风格的项目.

我试着玩声纳的各种项目属性,但没有爱:

# 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
Run Code Online (Sandbox Code Playgroud)

我怀疑问题出在"高级参数"下,但我不知道如何告诉Sonar,"请使用我的LCOV文件进行代码覆盖".

Fab*_*eam 8

您可以查看此示例项目,其中在sonar-project.properties文件中指定了LCOV报告的路径.

请注意,在最后一个版本的Javascript插件中,某些属性名称已更改.

  • 啊,看着你发布的链接,我看到诀窍是添加这个:sonar.javascript.jstestdriver.coveragefile=target/test-coverage/jscover.lcov sonar.javascript.lcov.reportPath=target/test-coverage/ jscover.lcov (2认同)
  • JsTestDriver不再存在.他们确实有[另一个Javascript](https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/javascript/javascript-sonar-runner-lcov)项目,我发现它很有帮助. (2认同)