blanketでmochaで書いたテストのカバレッジを測定する
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修正しました