Using simple_cov
gem in a Rails app, can we have the files that we are not testing included in the report?
If yes, how?
If no, that files should count to the coverage percentage, right ?
Try to edit your config/environments/test.rb
and set this line:
config.eager_load = false
to true
in this way the whole app is loaded and simplecov reads it.
Eager load the whole Rails app when running tests suite with code coverage.
Add Rails.application.eager_load!
to spec_helper.rb
.
Simplecov slows down tests that's why I use shell environment variable to turn it on. Usually my spec_helper.rb
/rails_helper.rb
looks something like this:
if ENV['COVERAGE']
require 'simplecov'
# some SimpleCov setup, e.g. formatters
SimpleCov.start 'rails'
end
ENV['RAILS_ENV'] ||= 'test'
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
Rails.application.eager_load! if ENV['COVERAGE']
Since version 0.11.0 the files that should be tracked can be explicit set (Pull Request).
For a Rails app that would be:
require 'simplecov'
SimpleCov.start do
track_files '{app,lib}/**/*.rb'
end
Or simple use:
require 'simplecov'
SimpleCov.start 'rails'
And the files to be tracked will be set by default (current related code).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With