SimpleCovメモ
カバレッジレポートを出力するツール。SimpleCov 0.21.2で確認。
以下のGemをインストールする。
group :test do
gem 'simplecov', require: false
end
spec/spec_helper.rb
の先頭に以下の2行を追加する。
require 'simplecov'
SimpleCov.start 'rails'
.gitignore
に以下の行を追加する。
/coverage
この時点で、bundle exec rspec
を実行すれば、coverage/index.html
が作成されブラウザで表示すればレポートを見れるはずである。
RSpecとSpringを連携していた場合はbin/spring stop
を実行してからbin/rspec
を実行しないとエラーになるかもしれない。
Springのせいでカバレッジレポートが間違った内容になることがあるらしいが、正しい結果が欲しい場合はSpringを経由しないbundle exec rspec
を実行すれば良い。
Guardを利用している場合
上記の設定のままだとGuardでテストを実行するたびにカバレッジレポートが出力される。また、RSpecの高速化のためにSpringと組み合わせているとカバレッジレポートが間違った内容で出力されてしまう。
なので、必要なタイミングでbundle exec rspec
を実行しカバレッジレポートを出力することにして、Guardではカバレッジレポートを出力しないようにする。
Guardfile
のRSpecの設定を変更する。
# cmdにGUARD=trueを追加する
guard :rspec, cmd: 'GUARD=true bin/rspec' do
# ...
end
spec/spec_helper.rb
の設定を以下のように書き換える。
unless ENV['GUARD']
require 'simplecov'
SimpleCov.start 'rails'
end