あいつの日誌β

働きながら旅しています。

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

以下の記事が参考になりました。