- 公開日
カバレッジ率計測サービスをCoverallsからCodeClimateに乗り換えてみた話
目次
趣味で立ち上げているプロジェクトをこの度、CoverallsからCodeClimateに乗り換えてみたので、その知見の共有。
どんなサービスを使うか
自分がRails/Rubyプロジェクト(not Private)をGitHubに公開するとき、必ず使うSaaS群があって、例えばCIサービスであったりカバレッジ率の計測サービスであったりコードの品質の計測サービスであったりする。それらのサービス群をまとめると下記のようになる。
サービス | 用途 |
---|---|
Travis CI | CI回す |
Coveralls | カバレッジ率を計測 |
Code Climate | コード品質を計測 |
Gemnasium |
※ Publicなレポジトリであれば全て無料で使えます
【図】SaaSの利用により表示できるようになるバッジ群
Coveralls → CodeClimate
今回その内の1つであるCoverallsをCodeClimateに移行してみたのですが、そのきっかけとしてはCircleCIでCodeClimateとのインテグレーションが推奨されていたから。
Travis CI: Using Code Climate with Travis CI
コード品質とカバレッジ率は分散するよりも1つのサービスに集約されて閲覧できたほうが都合がよいし、TravisCIの勧めるCodeClimateに統合してみることとした。
手順
Set Code Climate token
CodeClimateのSettingsからテスト実行時のTokenがゲットできるのでそれを.travis.yml
にセット。
addons:
code_climate:
repo_token: adf08323...
Intall CodeClimate reporter
codeclimate-test-reporter をGemfile
のtest groupに追加する。
gem "codeclimate-test-reporter", require: false
CodeClimateのセットアップインストラクション通りに書くとこう。spec/rails_helper.rb
に書きます。
require "codeclimate-test-reporter"
CodeClimate::TestReporter.start
Simplecovと同居させる
私の環境の場合、既にSimplecovが入っておりましたので、simplecovとインテグレーションさせる場合はちょっと異なるセットアップが必要になります。
require 'simplecov'
require "codeclimate-test-reporter"
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
SimpleCov::Formatter::HTMLFormatter,
CodeClimate::TestReporter::Formatter
]
SimpleCov.start "rails"
このようにSimpleCovのformatterにCodeClimate::TestReporter::Formatter
を入れてやれば
これでCode Climate上で品質・カバレッジ率が閲覧できるようになりました。