iam正在尝试将ember插件项目中的代码覆盖率添加到sonarqube中。CodeCoverage是使用ember cli blanket创建的。可以由SonarQube runner导入的LCOV文件已经创建并填充了覆盖数据,但sonarrunner(jenkins内部)正在打印以下错误:
SonarQube Runner 2.3
...
15:53:29.949 INFO - Analysing [/home/build/.jenkins/workspace/$projectname$/$home_dir$/lcov.dat]
15:53:29.970 WARN - Could not resolve 206 file paths in [/home/build/.jenkins/...
first unresolved path: $projectname$/helpers/concat
作业配置为在shell中执行以下命令:
ember test --test-page='tests/index.html?hidepassed&coverage=true'
当我探索这个项目时,目录结构如下:
-- $projectname$
|
|-- app
|
|-- helpers
|
| - concat.js
LCOV文件,如下所示:
SF:$projectname$/helpers/concat.js
DA:1,1
DA:2,1
...
LF:9
LH:9
end_of_record
当然,SonarRunner在LCOV文件中报告的路径上找不到文件。
我如何配置它,以便lcov文件中的路径正确?
欢呼。
所以,我在github上发布了这个问题并得到了答案。解决方案是,使用"sed"手动编辑lcov输出。在我的情况下,命令如下所示:
sed -i -- 's/SF:$oldName$/(.*)/SF:$newName$/$newPath$/1.js/' lcov.dat