mochaで書いたテストのカバレッジ(網羅率)を取るにはどうしたらよいのかと思っていたところ、blanketというのを見つけたので試してみました。
早速、blanketとmochaでテストを走らせた際にカバレッジを表示させられる様にするためのレポーターを追加します。
$ npm install --save-dev blanket $ npm install --save-dev mocha-spec-cov-alt
blanketの設定をpackage.jsonに追記します。data-cover-neverにはカバレッジ測定の対象としないディレクトリを明記します。ここではテストが入っているディレクトリとnpmのパッケージがインストールされているディレクトリを除外しています。
"config": {
"blanket": {
"pattern": [
""
],
"data-cover-never": [
"node_modules",
"test"
]
}
}
更に npm test を実行する際の設定を以下の様に修正します。mochaを呼び出す際に以下の2つのオプションを追加します。
- レポーターにmocha-spec-cov-altを指定
-R mocha-spec-cov-alt - 実行時にblanketを読み込む様に指定
--require blanket
修正例としては以下の様な形。
"scripts": {
"test": "NODE_ENV=\"testing\" mocha -R mocha-spec-cov-alt --recursive --require blanket "
},
ここまででテストのカバレッジがmochaの実行結果として表示される様になります。*1
npm test を実行すると

といった形でテストの末尾にカバレッジが表示される様になります。
参考
*1:コメントに従ってscripts修正しました
(Visited 228 times, 1 visits today)
run-scriptだったら、node_modules以下のbinにパスが通っているので、
“`
“NODE_ENV=\”testing\” mocha -R mocha-spec-cov-alt –recursive –require blanket
“`
でもよさそうです。
run-scriptだったら、node_modules以下のbinにパスが通っているので、
“`
“NODE_ENV=\”testing\” mocha -R mocha-spec-cov-alt –recursive –require blanket
“`
でもよさそうです。
あ!確かに。本文の方もそうしよう!