JavaScript コードのカバレッジを報告するように Karma を構成しました。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
残念ながら、Sonarqube JavaScript プラグインSF:
は、DA:
またはで始まる行のみを考慮しますBRDA:
( LCOVParserを参照)。
そのため、LCOV HTML レポート (Istanbul が作成) は、同じデータで Sonar よりも高いコード カバレッジを提供してくれます。
生成された形式を変更する方法はありlcov.info
ますか?
イスタンブールのコードを見ると、さまざまなラベルの意味を想像できます。
BRF
、BRH
、BRDA
はブランチ用です。FN
、、、FNF
は関数FNH
用FNDA
です。LN
、LF
、は行LH
用です。*F
は合計、*H
は対象となる情報です。
イスタンブールとソナーのカバレッジの違いは、後者が関数とブランチのカバレッジを完全に無視しているという事実によるものと思われます。
それを解決するためのアイデアはありますか?