danger-shroud

Enforce Jacoco code coverage on CI.


License
MIT
Install
gem install danger-shroud -v 0.0.1

Documentation

danger-shroud

A danger plugin for enforcing code coverage coverage via a Kover or Jacoco coverage report.

Shroud Banner Image

Installation

Add this line to your application's Gemfile:

gem 'danger-shroud'

Usage Kover

Shroud depends on having a Kover coverage report generated for your project. For Android projects, kotlinx-kover works well.

Running shroud with default values:

# Report coverage of modified files, fail if either total 
# project coverage or any modified file's coverage is under 90%
shroud.reportKover 'Module Name', 'path/to/kover/report.xml'

Running shroud with custom coverage thresholds:

# Report coverage of modified files, fail if total project coverage is under 80%,
# or if any modified file's coverage is under 95%
shroud.reportKover 'Module Name', 'path/to/kover/report.xml', 80, 95

Warn on builds instead of fail:

# Report coverage of modified files the same as the above example, except the
# builds will only warn instead of fail if below thresholds
shroud.reportKover 'Module Name', 'path/to/kover/report.xml', 80, 95, false

Usage Jacoco

Shroud depends on having a Jacoco coverage report generated for your project. For Android projects, jacoco-android-gradle-plugin works well.

Running shroud with default values:

# Report coverage of modified files, fail if either total 
# project coverage or any modified file's coverage is under 90%
shroud.reportJacoco 'Module Name', 'path/to/jacoco/report.xml'

Running shroud with custom coverage thresholds:

# Report coverage of modified files, fail if total project coverage is under 80%,
# or if any modified file's coverage is under 95%
shroud.reportJacoco 'Module Name', 'path/to/jacoco/report.xml', 80, 95

Warn on builds instead of fail:

# Report coverage of modified files the same as the above example, except the
# builds will only warn instead of fail if below thresholds
shroud.reportJacoco 'Module Name', 'path/to/jacoco/report.xml', 80, 95, false

Development

  1. Clone this repo
  2. Run bundle install to setup dependencies.
  3. Run bundle exec rake spec to run the tests.
  4. Use bundle exec guard to automatically have tests run as you make changes.
  5. Make your changes.