Uploads Ruby code coverage data to scrutinizer-ci.com. Internally, it relies on SimpleCov.
Add this line to your application's Gemfile:
gem 'scrutinizer-ocular'
And then execute:
$ bundle
Or install it yourself as:
$ gem install scrutinizer-ocular
You need to initialize ocular at the very top of your test_helper.rb
or spec_helper.rb
file
before loading any of your code:
# test_helper.rb or spec_helper.rb
require 'scrutinizer/ocular'
Scrutinizer::Ocular.watch!
When running your tests on a private repository, make sure you have your access token set:
SCRUTINIZER_ACCESS_TOKEN=abc123 bundle exec rspec spec
When you create an access token, make sure to select READ
permission only.
Generally, it's a good idea to set-up a dedicated user for reporting code coverage only.
If you would like to have SimpleCov use a specific profile, you can pass it to the watch method:
Scrutinizer::Ocular.watch! 'rails'
If you would like to run other formatters apart from Scrutinizer's Formatter, you can add these easily:
require 'simplecov'
require 'scrutinizer/ocular'
# To avoid uploading coverage when running tests locally, you can use
# Scrutinizer::Ocular.should_run? and add the formatter conditionally.
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
SimpleCov::Formatter::HTMLFormatter,
Scrutinizer::Ocular::UploadFormatter
]
SimpleCov.start
Scrutinizer supports merging coverage from parallelized runs natively. All you need to do is adjust your .scrutinizer.yml to tell us how many submissions you are going to make; no further changes are necessary.
Parts of this code were inspired by the Ruby Coveralls implementation and were received under the MIT license.