前回の記事のCodecovに引き続き、同種のカバレッジサービスであるCoverallsを試してみたのでまとめる。
Coveralls
基本的にはCodecovと同じようなカバレッジを可視化するためのサービス。料金面では、オープンソースのみ無料で、private repositoryは有料。
Travis CIからCoverallsにカバレッジを送る
まず、事前にTravis CIとCoverallsでカバレッジを取得するリポジトリを有効にしておく。
今回も基本的な構成は同じで、実験用リポジトリはこちら。
- Node.js
- Mocha
- power-assert
- Istanbul
もちろんCoverallsもたいていの言語によるカバレッジ取得に対応している。
Node.jsの場合、カバレッジを転送するためにはnode-coverallsを使えばいい。以下のようにインストール。
$ npm install coveralls --save-dev
カバレッジはlcov形式を指定する。自分の場合、package.jsonに以下のように記述した。
"scripts": { "test": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --require intelli-espower-loader test/*.js" },
Travis CIでは、以下のように呼び出す。
after_success: - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
これでカバレッジが取得される。数字と一緒にグラフっぽいものが表示される。
プルリクを作成すると、カバレッジの変化をコメントで教えてくれる。
GitHubリポジトリにバッジを表示
お決まりのREADMEにバッジを表示するやつ。Coverallsの場合、ダッシュボードに表示されてるEMBEDを押すだけでmarkdownとか取得できるので迷わない。
READMEに記述すれば最新のカバレッジを表示できる。
Slackに通知
SlackでIncoming Webhookを作成するところまでは前回と同じ。
Coveralls側の設定は、Settings -> Notificationsから通知の設定ができる。Codecovと比較すると、GUI上で設定が完結するので楽。
これだけで↓のように通知が飛ぶようになる。
まとめ
CoverallsとCodecovを試した感想としては、そこまで大きな違いを感じなかった。強いて挙げると以下の点かな。
- Codecovはprivate repositoryが1つまで無料
- Codecovの方がグラフがしっかりしている
- Coverallsの方が設定が分かりやすい
- Coverallsの方が一般的に使われているので情報が集めやすい
サクッとOSSで使いたいならCoveralls、private repositoryで気軽に試したいならCodecovという印象。あとは好みで。