SimpleCov で Rails アプリのカバレッジを分析

日曜プログラミングだと、アプリを早く形にしたくて、 ついテストそっちのけで機能ばかり実装しがちな自分。

でもテストを書かないわけにはいかないし。いざ書こうと思ってはみたものの、 どこから手を付けたらいいか悩む。

まぁ、悩んでいても埒が明かないので、取っ掛かりとしてカバレッジを分析することにした。 開発しているのは Rails アプリなので、SimpleCov を使ってみる。

Gemfile に

group :test do
  gem "simplecov", require: false
end

を追加し、

bundle

で gem をインストール。あとは spec_helper.rb の先頭に

require "simplecov"
SimpleCov.start "rails"

を追加すれば準備終了。たったこれだけ。

試しに

bundle exec rake spec

を実行すると、RAILS_ROOT/coverage 下に HTML 形式でカバレッジの分析結果が出力される。 ブラウザで開くとこんな感じ。

f:id:griefworker:20130603210339p:plain

あまりのカバー率の低さに、そっとファイルを閉じた…。 テスト駆動というか振舞駆動で開発しておけばよかったと後悔。