blog.bouzuya.net

2014-04-15 bouzuya-fixturesをつくった

bouzuya/bouzuya-fixturesをつくった。bouzuya-fixturesはfixturesライブラリ。指定したファイルをrequireするだけのもの。yak shaving。

// test/fixtures/users.js
module.exports = {
  user1: { name: 'bouzuya' },
};

// index.js
var fixtures = require('bouzuya-fixtures');
fixtures('users').then(function(users) {
  console.log(users['user1']); //=> { name: 'bouzuya' }
});

まあ、これ自体は割とどうでも良いのだけれど、これを機会にひさしぶりにCoverallsを使った。以前もCoverallsについては書いていて、そのときにもbouzuya/coveralls-exampleを書いている。ふだんカバレッジをほとんどとらずにいるのだけど、目安のためにもとるべきなので、慣れるために今回は設定した。

以前も書いたとおり、そんなに設定は難しくなくってmochaをつかっているなら、次のような感じでHTMLを出力できる。APP_COVの有無でrequire('./lib/')require('./lib-cov/')かを振り分けるように設定も忘れずに。

$ npm install jscoverage
$ $(npm bin)/jscoverage lib
$ APP_COV=1 $(npm bin)/mocha -R html-cov

mochaのreporterとしてmocha-lcov-reporterを使って、coverallsに出力を渡せばcoverallsへの出力もOK。実際にはTravis CIから送ると想定。そうでないならキーなどが必要なはず。面倒。

$ $(npm bin)/jscoverage lib && APP_COV=1 $(npm bin)/mocha -R mocha-lcov-reporter | $(npm bin)/coveralls

このへんをまとめてpackage.jsonやらに設定しておくだけ。以前も一度書いているので簡単にできた。html-covで出力されたhtmlを開いて確認、とかも良いね。コンソールで確認したいんだけど、そのためのreporterはないみたいで残念。