Ở công ty mình có rất nhiều dự án chạy Rails vesion cũ và cần phải bổ sung rspec.

Mỗi project đều được quản lý quality trên CodeClimate. Có một yêu cầu khi viết spec là nó phải ít nhất code coverage > 90%. Nhưng SimpleCov chỉ hỗ trợ scan trên folder. Do đó mình có thể cấu hình rails_helper như sau.

RSpec.configure do |config|
  if config.files_to_run.one?
    config.default_formatter = 'doc'

    if ENV['TEST_COVERAGE']
      SimpleCov.start 'rails' do
        add_filter do |source_file|
          main_file = config.files_to_run.first.scan(/spec\/(.*)_spec.rb/).flatten.first
          source_file.filename.exclude?(main_file)
        end
      end
    end
  else
    SimpleCov.start 'rails'
  end
end

Sau đó chỉ cần gửi env TEST_COVERAGE khi chạy spec là xong.

TEST_COVERAGE=true bundle exec rspec spec/models/xero/task_runner_spec.rb