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