2013-12-17 Coverallsを試す
Backlog API wrapper for Node.jsでCoverallsを試す。
Coverallsはテストカバレッジの履歴を管理したり、バッジ表示するサービス。昨日書いたTravis CIと連携されることも多い。あくまで取得は各言語のライブラリで実施して、その結果を送って管理してもらう。テストカバレッジなどは自分で実施すると飽きるとやめてしまうことも多いので、こういうサービスをいかしたい。
前に書いたとおり、あくまで実施はそれぞれで行う。Node.jsの場合も色々なやりかたはあるみたい。
ぼくの場合は、visionmedia/mochaを使っているので、それと連携できるもの。今回はfishbar/jscoverageとcainus/node-coverallsとStevenLooman/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などが要る。
気が向いたらまたまとめよう。とりあえずの手順。
.gitignoreにlib-cov/を追加npm install --save-dev jscoverage coveralls mocha-lcov-reporterを実行package.jsonのscriptに"coveralls": "jscoverage lib && APP_COV=1 mocha -R mocha-lcov-reporter | coveralls"を追加index.jsでAPP_COVを使ってlib/lib-covを切り替え.travis.ymlにafter_success:で- npm run-script coverallsとする- Travis CIで管理
ぼくならこれで十分かなあ。あとはコードを改善する、と。
38 min.