如何更改Karma执行的LCOV报告的格式?
我已经configuration了Karma来报告我的JavaScript代码的覆盖范围。 以下是karma.conf.js
文件中的configuration部分:
coverageReporter: { reporters: [ { type: 'html', dir: 'build/karma/coverage' }, { type: 'lcov', dir: 'build/karma/coverage', subdir: '.' }, { type: 'cobertura', dir: 'build/karma/coverage' } ] },
我的lcov.info
文件具有以下格式:
TN: SF:./app/scripts/app.js FN:16,(anonymous_1) FN:26,(anonymous_2) FNF:2 FNH:1 FNDA:1,(anonymous_1) FNDA:0,(anonymous_2) DA:2,1 DA:20,1 DA:29,0 DA:34,0 LF:4 LH:2 BRF:0 BRH:0 end_of_record
不幸的是, Sonarqube JavaScript插件只考虑以SF:
, DA:
或BRDA:
开头的行BRDA:
(cf LCOVParser )。
由于这个原因,LCOV HTML报告(由伊斯坦布尔制作)给了我比Sonar更高的代码覆盖率。
有没有办法改变lcov.info
生成的格式?
如果我在伊斯坦布尔的代码看,我可以想象不同的标签的含义:
-
BRF
,BRH
,BRDA
分支机构 。 -
FN
,FNF
,FNH
,FNDA
是function 。 -
LN
,LF
,LH
是线路 。 -
*F
是总数,而*H
是覆盖的信息。
伊斯坦布尔和声纳的报道之间的区别似乎是由于后者完全忽略了职能和分支机构的报道。
任何想法解决?
你可以运行一个脚本: cat lcov.info | egrep "^(SF|DA|BRDA):" > lcov.info.new; mv lcov.info.new lcov.info
cat lcov.info | egrep "^(SF|DA|BRDA):" > lcov.info.new; mv lcov.info.new lcov.info
cat lcov.info | egrep "^(SF|DA|BRDA):" > lcov.info.new; mv lcov.info.new lcov.info
。
随着我得到:
SF:./app/scripts/app.js DA:2,1 DA:20,1 DA:29,0 DA:34,0