2016年2月16日火曜日

simplecovでrspecのテスト書いているのにカバレッジ0%のクラスがある

simplecovを使ってrailsのカバレッジを計測しているのですが、
異常に数値が低いなと思い、詳細を見ていったところ、
rspec書いているのに0%になっているクラスがいたので調べてみました。

修正前のrails_helper.rb
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
require 'simplecov'
require 'simplecov-rcov'
〜
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
SimpleCov.start 'rails'

修正後のrails_helper.rb
ENV["RAILS_ENV"] ||= 'test'
require 'simplecov'
require 'simplecov-rcov'
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
SimpleCov.start 'rails'

require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
〜

最初はsimplecovのrequireをrequireの中で一番下に書き、
rails_helper.rbの末尾のところでSimpleCov.startさせていました。
調べたところどうやら他のモジュールが読み込まれるよりも先に
simplecovを読み込ませるようにしないといけないようです。
カバレッジ0%だったものが修正後のものではちゃんと計測できていました。


参考URL
https://github.com/colszowka/simplecov/issues/77

0 件のコメント:

コメントを投稿