blog.bouzuya.net

2013-12-17 Coverallsを試す

Backlog API wrapper for Node.jsでCoverallsを試す。

Coverallsはテストカバレッジの履歴を管理したり、バッジ表示するサービス。昨日書いたTravis CIと連携されることも多い。あくまで取得は各言語のライブラリで実施して、その結果を送って管理してもらう。テストカバレッジなどは自分で実施すると飽きるとやめてしまうことも多いので、こういうサービスをいかしたい。

前に書いたとおり、あくまで実施はそれぞれで行う。Node.jsの場合も色々なやりかたはあるみたい。

ぼくの場合は、visionmedia/mochaを使っているので、それと連携できるもの。今回はfishbar/jscoveragecainus/node-coverallsStevenLooman/mocha-lcov-reporterとを使った。

jscoverage lib/とするとlib-cov/にカバレッジをとれるように変換されたコードを出力できる。それを使ってmocha -R mocha-lcov-reporterで実行すると、coverallsに送れる形式のデータで出力される。ひとつにまとめるとjscoverage lib && BACKLOG_API_COV=1 mocha -R mocha-lcov-reporter | coverallsとなる。BACKLOG_API_COVを使って、lib/lib-cov/とを切り替えている。別のモジュールを使った例だが、alanshaw/nodeunit-lcov-coveralls-exampleが分かりやすい。

Coverallsはちょっと扱いが難しくて、Travis-CIなら最後にafter_success:にでも書いていれば動くけど、ローカルから実行しようとするとrepo_tokenなどが要る。

気が向いたらまたまとめよう。とりあえずの手順。

  1. .gitignorelib-cov/を追加
  2. npm install --save-dev jscoverage coveralls mocha-lcov-reporterを実行
  3. package.jsonscript"coveralls": "jscoverage lib && APP_COV=1 mocha -R mocha-lcov-reporter | coveralls"を追加
  4. index.jsAPP_COVを使ってlib/lib-covを切り替え
  5. .travis.ymlafter_success:- npm run-script coverallsとする
  6. Travis CIで管理

ぼくならこれで十分かなあ。あとはコードを改善する、と。

38 min.