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
.simplecovfile 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 endNote that we're using a predefined profile called
railswhich 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 :branchon Ruby 2.5+ projects to make Simplecov check if all possible branches of a condition have been hit. -
Require in your
features/support/env.rbfor 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.rbfor 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 # ... -
Consider disabling SimpleCov if you only run a fraction of your 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