Simplecov Show archive.org snapshot is a code coverage tool. This helps you to find out which parts of your application are not tested.
Integrating this in a rails project with rspec, cucumber and parallel_tests is easy.
Add it to your Gemfile and bundle
group :test do
gem 'simplecov', require: false
end
Add a .simplecov
file in your project root:
SimpleCov.start 'rails' do
# any custom configs like groups and filters can be here at a central place
enable_coverage :branch # see https://github.com/colszowka/simplecov#branch-coverage-ruby--25
end
Note that we're using a predefined profile called rails
which will group your models, controllers etc. in different tabs. You can also create your own profiles or use no profile at all.
Optional: Enable "Branch Coverage" by adding enable_coverage :branch
on Ruby 2.5+ projects to make Simplecov check if all possible branches of a condition have been hit.
Require in your features/support/env.rb
for cucumber (important: require it before anything else, especially rails!):
require 'simplecov'
SimpleCov.command_name 'features' + (ENV['TEST_ENV_NUMBER'] || '') # remove the TEST_ENV_NUMBER part if you don't use parallel_tests
# ...
Require it in spec/spec_helper.rb
for rspec (important: require it before anything else, especially rails!)
require 'simplecov'
SimpleCov.command_name 'specs' + (ENV['TEST_ENV_NUMBER'] || '') # remove the TEST_ENV_NUMBER part if you don't use parallel_tests
# ...
Run your tests (rspec and cucumber)
At the end of the testrun you should see something like Coverage report generated for features, features2, features3, features4, specs, specs2, specs3, specs4 to /home/<user>/<my-project>/coverage.
(optional): add coverage/*
to your project's .gitignore
Open the file with your browser: xdg-open coverage/index.html
You should see a table like the one in the
documentation
Show archive.org snapshot
.
Sort the table by "lines missed" to find the blind spots