1.0.1 • Published 6 years ago

nyc-text-summary-avg v1.0.1

Weekly downloads
87
License
MIT
Repository
gitlab
Last release
6 years ago

nyc-text-summary-avg

Build status Coverage License

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.

1.0.1

6 years ago

1.0.0

6 years ago

0.1.0

6 years ago