nyc-text-summary-avg
v1.0.1
Published
Computes the average coverage from the nyc's text-summary report.
Downloads
42
Maintainers
Readme
nyc-text-summary-avg
Computes the average coverage from a nyc's text-summary report.
Use it in CI systems, like GitLab CI, that generate coverage by extracting it from job logs using regular expressions. It can also be used to stop the CI pipeline, when the coverage average is below the given limit.
Installing
When using yarn:
yarn add nyc-text-summary-avg
When using npm:
npm install nyc-text-summary-avg
Usage
The average is calculated from a stream piped from the output of the nyc command:
nyc mocha | nyc-text-summary-avg
It relies on the text-summary report being present in the stream, so the text-summary reporter must be enabled in nyc's configuration options.
Either via the command line:
nyc --reporter=text-summary mocha | nyc-text-summary-avg
or inside the package.json or .nycrc files:
{
"reporter": [
"text-summary"
]
}
The output with the average is then printed to the console:
============================== nyc-text-summary-avg ==============================
OK. Coverage average: 93.60.
==================================================================================
It can then be matched by this regular expression:
^OK\. Coverage average:\s(100|(?:\d|[1-9]\d)(?:\.\d+)?).$
Setting the limit
To set a limit below which this program will exit with an error, use the -l
or --limit
flag:
nyc mocha | nyc-text-summary-avg -l 95
It then exits with an error code, that stops the CI pipeline:
============================== nyc-text-summary-avg ==============================
FAIL. Coverage average: 93.60 is below the given limit: 95.
==================================================================================
Passing through the original stream
By default, the output from the nyc command is consumed. To pass it through the program, use the -p
or --pass
flag:
nyc mocha | nyc-text-summary-avg -p
License
This project is licensed under the MIT License - see the LICENSE.md file for details.