Я настроил Karma, чтобы сообщить о моем JavaScript-коде. Вот часть конфигурации в файле karma.conf.js
:
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
К сожалению, плагин JavaScript Sonarqube рассматривает только строки, начинающиеся с SF:
, DA:
или BRDA:
(cf LCOVParser).
В связи с этим, HTML-отчет LCOV (сделанный Стамбулом) дает мне более высокий охват кода, чем Sonar, по тем же данным.
Есть ли способ изменить формат созданного lcov.info
?
Если я смотрю код Стамбула, я могу представить себе значение разных меток:
-
BRF
,BRH
,BRDA
для ветвей. -
FN
,FNF
,FNH
,FNDA
предназначены для функций. -
LN
,LF
,LH
для строк. -
*F
- это сумма, тогда как*H
- это информация, охватываемая.
Разница между охватом Стамбула и Сонара, по-видимому, связана с тем, что последний полностью игнорирует покрытие функций и веток.
Любая идея решить это?