https://github.com/addityasingh/istanbul-coverage-enforcer
A Nodejs package and cli tool to enforce code coverage
https://github.com/addityasingh/istanbul-coverage-enforcer
code-coverage coverage-enforce istanbul nodejs
Last synced: 6 months ago
JSON representation
A Nodejs package and cli tool to enforce code coverage
- Host: GitHub
- URL: https://github.com/addityasingh/istanbul-coverage-enforcer
- Owner: addityasingh
- License: mit
- Created: 2018-02-21T23:32:16.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T10:42:12.000Z (over 3 years ago)
- Last Synced: 2025-10-11T07:48:08.599Z (10 months ago)
- Topics: code-coverage, coverage-enforce, istanbul, nodejs
- Language: JavaScript
- Size: 517 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# istanbul-coverage-enforcer
A Nodejs package and cli tool to enforce global code coverage
[](https://npmjs.org/package/istanbul-coverage-enforcer)
## Build status
[](https://travis-ci.org/addityasingh/istanbul-coverage-enforcer)
[](https://codecov.io/github/addityasingh/istanbul-coverage-enforcer)
## npm status
[](https://npmjs.org/package/istanbul-coverage-enforcer)
[](https://npmjs.org/package/istanbul-coverage-enforcer)
### Why?
Most of the coverage tools available do not provide an option to enforce the coverage and flag exception in case the coverage threshold is not met. This is one of the very frequently faced use cases I came across for most applications I work along with other team members. Due to struct deadlines we tend to miss out on tests and manually enforcing the test coverage to be maintained is not a scalable option.
This package solves the issue of manually maintaning the global code coverage above a given threshold
# Installation
Use it with `npm` as
```
npm install istanbul-coverage-enforcer
```
or with yarn as
```
yarn add istanbul-coverage-enforcer
```
# Prerequisite
istanbul stable (`0.4.5` or below) is needed to get the [required interface](http://gotwarlost.github.io/istanbul/public/apidocs/classes/Istanbul.html) of the `coverage.json` file
# Usage
You can use the istanbul-coverage-enforcer both as a node package and as a CLI tool
#### As a CLI tool:
These are the options available currently with the CLI tool
```
enforce --help
Usage: enforce [options]
Options:
-c, --coverage-path The path to coverage JSON file
-t, --threshold-path The path to the threshold JSON file
-h, --help output usage information
```
1. Add a npm script in `package.json` to call the package with the path to the code-coverage file. By default this is at `coverage/coverage.json`
```javascript
"enforce-coverage": "enforce -c coverage/coverage.json -t coverage-threshold.json",
```
2. Now you can run this script as part of your build to ensure that code coverage is maintained above threshold
```
npm run enforce-covergage
```
***Output***


#### As a node package
1. Create a `coverage-threshold.json` in the root of your project. Optionally this can be also passed as the second parameter to the function
2. In your script *import* and *call* the `enforce` function as below:
```
const enforce = require('../index');
enforce('./examples/packages/coverage.json', './examples/packages/coverage-threshold.json');
```
Refer the [examples](https://github.com/addityasingh/istanbul-coverage-enforcer/tree/master/examples) folder for basic use case examples as node package and cli
# Reference and Credits
[istanbul-threshold-checker](https://github.com/peterjwest/istanbul-threshold-checker) for getting the grunt work to compare and generate the result