Repository is archived
No commit activity in last 3 years
No release in over 3 years
Report test coverage to your GitHub repository
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.12

Runtime

~> 0.9
 Project Readme

CircleCI::CoverageReporter

Gem CircleCI Gemnasium Code Climate

CircleCI::CoverageReporter reports test coverage to your GitHub repository.

Example

image

Getting started

  1. Add CircleCI::CoverageReporter to your Gemfile and bundle install:

    gem 'circleci-coverage_reporter', group: :test
  2. Load circleci/coverage_reporter/rake_task in your Rakefile:

    require 'circleci/coverage_reporter/rake_task' if ENV['CIRCLECI']
  3. Issue CircleCI and GitHub tokens and add them to build environment variables as follows:

    Name Value
    COVERAGE_REPORTER_CIRCLECI_TOKEN CircleCI API token with "view-builds" scope
    COVERAGE_REPORTER_VCS_TOKEN GitHub personal access token with "repo" or "public_repo" scope
  4. Add the following step to your circle.yml:

    test:
      post:
      - bundle exec rake circleci:report_coverage

Run manually

You must configure circleci_token and vcr_token before CircleCI::CoverageReporter.run:

CircleCI::CoverageReporter.configure do |config|
  config.circleci_token = YOUR_CIRCLECI_API_TOKEN
  config.vcr_token = YOUR_GITHUB_PERSONAL_ACCESS_TOKEN
end

CircleCI::CoverageReporter.run

Reporters

SimpleCov

CircleCI::CoverageReporter::Reporters::SimpleCovReporter handles coverage files generated by SimpleCov.

It expects that coverage files are located in $CIRCLE_ARTIFACTS/coverage directory:

# spec/spec_helper.rb
require 'simplecov'
# Save to CircleCI's artifacts directory if we're on CircleCI
SimpleCov.coverage_dir(File.join(ENV['CIRCLE_ARTIFACTS'], 'coverage')) if ENV['CIRCLECI']
SimpleCov.start

If you put files in another directory, say $CIRCLE_ARTIFACTS/foo/bar, you have to set reporter as follows:

CircleCI::CoverageReporter.configure do |config|
  config.reporters << CircleCI::CoverageReporter::Reporters::SimpleCov.new(dir: 'foo/bar')
end

Flow

CircleCI::CoverageReporter::Reporters::FlowReporter handles coverage files generated by flow-coverage-report

It expects that there is $CIRCLE_ARTIFACTS/flow-coverage/flow-coverage.json:

$(npm bin)/flow-coverage-report -t json -o $CIRCLE_ARTIFACTS/flow-coverage

If you put the file in another path, say $CIRCLE_ARTIFACTS/foo/bar/flow-coverage.json, you have to set reporter as follows:

CircleCI::CoverageReporter.configure do |config|
  config.reporters << CircleCI::CoverageReporter::Reporters::Flow.new(dir: 'foo/bar')
end

RubyCritic

CircleCI::CoverageReporter::Reporters::RubyCritic handles code quality files generated by rubycritic

bundle exec rubycritic -p $CIRCLE_ARTIFACTS/rubycritic -f json --no-browser --mode-ci app
bundle exec rubycritic -p $CIRCLE_ARTIFACTS/rubycritic -f html --no-browser --mode-ci app

Link

CircleCI::CoverageReporter::Reporters::Link reports a link to an artifact file.

CircleCI::CoverageReporter.configure do |config|
  config.reporters << CircleCI::CoverateReporter::Reporters::Link.new(path: 'path/to/file', name: 'NAME')
end

License

The gem is available as open source under the terms of the MIT License.