SimpleCovでカバレッジをとれるはずなのにとれないファイルがある場合の処置。

SimpleCovでカバレッジをとれるはずなのにとれないファイルがある場合の処置。

app/modelsなど、本来ならデフォルトでターゲットに入っているファイルのカバレッジが取れていない場合、なおかつ、取れてる部分はしっかり取れている場合。

わたしの場合は、ActiveRecordActionCable::Connectionまわりのみ、完全に0という状況でした。

バージョン

  • rails (5.0.0.rc1)
  • simplecov (0.11.2)
  • rspec (3.1.0)
  • capybara (2.7.1)

SimpleCov.startや設定を.simplecovに移動

ルートディレクトリに作成し、その中にrails_helper.rbなどに書いてある設定を移動します。

if ENV['CI']
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[Coveralls::SimpleCov::Formatter]
else
  require 'simplecov-rcov'
  SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
end

SimpleCov.start 'rails' do
  add_filter '/lib/'
  add_filter '/spec/'
end

Using .simplecov rather than separately requiring SimpleCov multiple times is recommended if you are merging multiple test frameworks like Cucumber and RSpec that rely on each other, as invoking SimpleCov multiple times can cause coverage information to be lost.