テストのカバレッジとは、そのテストが対象のうち、どれくらいの割合のコードを実行したかを表す数字です。数値が 100% に近ければそれだけテストが網羅されていることを示します。必ず 100% にしなければいけないとは思いませんし、 100% だから安心というわけでもないですが、一応の指標にはなります。
今回は babel を使ってコンパイルしたコードのカバレッジを取ることのできる isparta
を使って babel
mocha
を使ったテストを計測してみます。
必要な知識
npm
コマンドmocha
コマンド- ECMAScript 6
インストール
必要なモジュールをインストールしておきます。
$ npm install -g isparta
$ npm install -D mocha
例
簡単なテストの例を用意します。
// a.js
import assert from 'assert';
import { f } from './b';
describe('A', () => {
it('B', () => {
assert(f() === 100);
});
});
// b.js
export function f() {
return 100;
}
a.js
がテストのコードで b.js
がテスト対象です。
テストの実行
isparta
コマンドに引数を指定します。
$ isparta cover --report html _mocha -- a.js
isparta
で mocha
を実行しています。 --
以降は mocha
に渡す引数です。
実行するとテストが成功するはずです。同時に coverage
というディレクトリの中に index.html
というファイルができます。これがカバレッジのレポートです。開くと 100% になっているのがわかるはずです。
ここで b.js
に絶対に実行されない文を書き加えてみます。
// b.js
export function f() {
if (false) {
return 1;
}
return 100;
}
if (false) { ... }
の内側は実行されません。書き換えたあとで先ほどのコマンドを実行し、 index.html
を確認するとその部分が実行されずカバレッジが下がることがわかります。
まとめ
isparta
でbabel
で変換しながらカバレッジを取れる