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.
gem install bashcov
If the gem
command is unavailable, you need to install Ruby first.
For more information, including other installation methods, see INSTALL.md
.
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.
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.
Bug reports and patches are most welcome. See the contribution guidelines.
For development tips, see the hacking guide.
Bashcov was created in 2012 and it needs your help. I have been maintaining the project for over a decade and keeping it working with new releases of Bash and Ruby takes time. If you use Bashcov professionally, please considerer supporting it on Liberapay through your employer or directly. Thank you for supporting Free and Open-Source Software.
MIT