Uploads Ruby code coverage data to scrutinizer-ci.com. Internally, it relies on SimpleCov.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install scrutinizer-ocular
You need to initialize ocular at the very top of your
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.
Defining the SimpleCov Profile
If you would like to have SimpleCov use a specific profile, you can pass it to the watch method:
Adding additional Formatters
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
Merging Coverage from Parallelized Runs
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.