Sonarqube默认覆盖范围为0,来自具有绝对路径的Karma Coverage LCOV文件 [英] Sonarqube default coverage to 0 from Karma Coverage LCOV file with absolute pathjs

查看:235
本文介绍了Sonarqube默认覆盖范围为0,来自具有绝对路径的Karma Coverage LCOV文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当路径在我的lcov文件中是绝对路径时,Sonar不会检索项目的覆盖率信息。对于文件:

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
....

我收到以下警告:

...
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

...

但是,默认情况下,karma(和istambul)正在生成具有绝对路径的文件。

However, by default karma (and istambul) are generating file with absolute paths.

如果我更改路径以使它们相对,则sonarqube会正确报告覆盖范围。但是,我必须确保在向声纳报告之前始终运行lcov补丁脚本。

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

  • 声纳6.1和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.)

2016年3月更新:我已向Istambul发送了一个Pull请求,以便生成具有相对路径的lcov文件。我希望这可以解决这个问题 https://github.com/gotwarlost/istanbul/pull/771

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

推荐答案

SonarQube JavaScript插件应该能够处理LCOV文件中的相对路径和绝对路径。但是,您的设置似乎不正确。您的LCOV文件是指给定目录中的文件路径:

The SonarQube JavaScript plugin should be able to handle both relative and absolute paths in LCOV files. However, it seems that your setup is incorrect. Your LCOV file refers to file paths in a given directory:

SF:/home/mrincon/work/git/promoter-app-client/src/app.js

根据您的分析日志,似乎您的分析在另一个目录中运行:

And based on the logs of your analysis, it seems that your analysis is run in another directory:

Analysing [/srv/jenkins/master/jenkins_home/workspace/job1/coverage/lcov.info]

也许您在一台机器上生成了LCOV文件并在另一台机器上运行分析...最后,SonarQube无法将LCOV文件中包含的路径与分析的文件相匹配。

Maybe you generated the LCOV file on one machine and run the analysis on another... In the end, SonarQube can't match the paths contained in the LCOV file with the files which are analysed.

您应该:


  • 生成LCOV报告并从相同的
    目录运行SonarQube分析,

  • 或让您的LCOV文件仅包含亲属路径。

这篇关于Sonarqube默认覆盖范围为0,来自具有绝对路径的Karma Coverage LCOV文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆