Ở 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