mocha で coverage が動かなくなったので istanbul にした
とある node.js で動かしていた coverage 生成ツールが動かなくなったので調べた。
blanket.js はすでに開発者不在の状態なので istanbul を使います。
サンプルコード
% mkdir practice-istanbul && cd $_ % npm init -f % npm install --save-dev mocha istanbul power-assert % mkdir lib test % touch lib/hello.js test/test_hello.js
edit: lib/hello.js
% cat lib/hello.js module.exports = function () { return 'hello'; }
edit: test/test_hello.js
% cat test/test_hello.js var assert = require('power-assert'); var hello = require('./../lib/hello'); describe('pathUtils.getHash', function() { it('returns md5 hash', function(done) { assert(hello() === 'hello'); done(); }); });
テストを実行してみる
$(npm bin)/mocha
coverage を生成してみる
$(npm bin)/istanbul cover $(npm bin)/_mocha
以下の通りファイルが生成されます。
% tree coverage coverage ├── coverage.json ├── lcov-report │ ├── base.css │ ├── index.html │ ├── lib │ │ ├── hello.js.html │ │ └── index.html │ ├── prettify.css │ ├── prettify.js │ ├── sort-arrow-sprite.png │ └── sorter.js └── lcov.info
以下の記事が参考になりました。