ChefSpec::CoverageReports
Provides a generic interface to creating ChefSpec coverage reports, including a default JSON report.
Installation
Add this line to your application's Gemfile:
gem 'chefspec-coveragereports'
And then execute:
$ bundle
Or install it yourself as:
$ gem install chefspec-coveragereports
Usage
To enable the Coverage Reports functionality, you must include the following inside of your spec_helper:
require 'chefspec/coveragereports'
With this included you can now tell the Coverage Reports what reports to generate and where to place the reports.
Using one of the included templates
To utilize one of the included Erubis templates you can use the following:
ChefSpec::CoverageReports.add('json', 'coverage.json')
This will utilize the built in json template, and create a file named coverage.json.
Proving your own template
To utilize your own Erubis template you can use the following:
ChefSpec::CoverageReports.add_custom('some/path/template.erb', 'coverage.report')
Where you provide the path to the template, and the output file for the report.
Template Functionality
Coverage Reports exposes a hash called @coverage
that can be used to create your own custom Erubis templates.
This hash provides full access to the raw coverage data generated by ChefSpec, as well as some already processed data.
raw
@coverage['raw']
Provides full access to the array of raw data generated by ChefSpec
coverage
@coverage['coverage']
Provides acccess to the data processed by Coverage Reports.
files
@coverage['coverage']['files']
Provides access to a hash of all of the files and the resources observed inside of them.
resources - all
@coverage['coverage']['resources']['all']
Provides access to a hash of all of the resources, keyed by name.
resources - covered
@coverage['coverage']['resources']['covered']
Provides access to a hash of all of the resources that were covered, keyed by name.
resources - uncovered
@coverage['coverage']['resources']['uncovered']
Provides access to a hash of all of the resources that were not covered, keyed by name.
totals
@coverage['coverage']['totals']
Provides a set of totals to help make reporting easier, including total resources, covered and uncovered resource counts, as well as percent coverage.
Contributing
- Fork it ( https://github.com/aspring/chefspec-reports/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request