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
 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.