jest-code-coverage-protection
Jest code coverage protection is a simple utility that allows you to compare code coverage between two branches during your ci/cd steps. All you will need to do is generate a json summary of the coverage on your current branch, checkout the desired comparison branch during the ci/cd step and generate a json summary of the coverage for that as well and point jest-code-coverage-protection to both summary files and it will tell you if code coverage on your code changes has increased or decreased using the exit code.
Requirements
- Add
json-summary
as coverage reporter to jest configuration
Install
npm install jest-code-coverage-protection --save-dev
Add the command to package.json
"scripts": {
"jccp": "jccp"
},
usage options
Usage: jccp [options]
Compare coverage-summary.json generated by jest
Options:
-V, --version output the version number
-f, --file <filename> The file generated by the (feature) branch you want to check (default: "coverage/coverage-summary.json")
-c, --compare <filename> The file generate by the (master) branch you want to compare against (default: "master/coverage/coverage-summary.json")
-n, --new <threshold The minimal threshold new code should have (default: "0.80")
-v, --variance <variance> Allow for variance, e.g. allow 0.05 to allow a 5% decrease using hold (default: "0")
-m, --mode <mode> Force <new> code threshold or do not allow decrease <hold> (default: "hold")
-h, --help display help for command
Configure ci/cd:
- Make sure your branches generate the coverage-summary.json file using the coverage reporter json summary
- Add checkout of comparison branch(master) to your build step
- Run jccp command
- Catch exit codes of jccp, 0 = coverage check passed, 1 = coverage check failed
Examples
jccp -m new -n 0.9 <new code should have at least 90% code coverage>
jccp -m hold -v 0.5 <overall code coverage should be within 0.5% of comparison branch>
jccp -f cover.json <specify input file for the feature branch>