bashcov icon indicating copy to clipboard operation
bashcov copied to clipboard

Code coverage tool for Bash

Bashcov

Gem Version Build Status Coverage Status Maintainability Inline docs

Bashcov is a code coverage analysis tool for Bash.

In most cases, you'll want overall coverage results for your project from shUnit2, Bats, bash_unit, assert.sh, bashaspec, etc. Bashcov automatically takes care of this by caching and merging results when generating reports, so your report includes coverage across your test suites and thereby gives you a better picture of blank spots.

It uses the SimpleCov coverage library to generate HTML reports. SimpleCov gets installed automatically when you install Bashcov.

Here are example coverages generated by Bashcov: test app demo & RVM demo.

Installation

gem install bashcov

If the gem command is unavailable, you need to install Ruby first.

Usage

bashcov --help prints all available options. Here are some examples:

bashcov ./script.sh
bashcov --skip-uncovered ./script.sh
bashcov -- ./script.sh --some --flags
bashcov --skip-uncovered -- ./script.sh --some --flags

./script.sh can be a mere Bash script or typically your CI script. Bashcov will keep track of all executed scripts.

It will create a directory named ./coverage/, you may open ./coverage/index.html to browse the coverage report.

SimpleCov integration

You can leverage the underlying library SimpleCov by adding a .simplecov file in your project's root, like this. See advanced usage for more information.

Contributing

Bug reports and patches are most welcome. See the contribution guidelines.

License

MIT