Hack Your Design!

カバレッジ率計測サービスをCoverallsからCodeClimateに乗り換えてみた話

(image)カバレッジ率計測サービスをCoverallsからCodeClimateに乗り換えてみた話

趣味で立ち上げているプロジェクトをこの度、CoverallsからCodeClimateに乗り換えてみたので、その知見の共有。

どんなSasSを使うか

自分がRails(ruby)プロジェクト(not private)をGithubに公開するとき、必ず使うSaaS群があって、例えばCIサービスであったりカバレッジ率の計測であったりコードの品質の計測であったりする。それをまとめると下記のようになる。

サービス 用途
Travis CI CI回す
Coveralls カバレッジ率を計測
Code Climate コード品質を計測
Gemnasium Gemのバージョンチェック

※ Publicなレポジトリであれば全て無料で使えます

badges

【図】SaaSの利用により表示できるようになるバッジ群

Coveralls → CodeClimate

今回その内の1つであるCoverallsをCodeClimateに移行してみたのですが、そのきっかけとしてはCircleCIでCodeClimateとのインテグレーションが推奨されていたから。

Travis CI: Using Code Climate with Travis CI

コード品質とカバレッジ率は分散するよりも1つのサービスに集約されて閲覧できたほうが都合がよいしTravis CIのすすめる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を入れてやれば :ok:

codeclimate

これでCode Climate上で品質・カバレッジ率が閲覧できるようになりました。

参考

Using Code Climate’s new test reporter together with Coveralls and SimpleCov’s HTML Formatter

  • このエントリーをはてなブックマークに追加
comments powered by Disqus