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は対象となる情報です。
イスタンブールとソナーのカバレッジの違いは、後者が関数とブランチのカバレッジを完全に無視しているという事実によるものと思われます。
それを解決するためのアイデアはありますか?