A command-line tool to collect and report code coverage of a JavaScript program
npm install coverage





A command-line tool to collect and report code coverage of a JavaScript program
``console
$ coverage test.js
✔ write a file
✔ create directories as needed
✔ validate arguments
3 of 3 passed.
----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | 95.15 | 79.52 | 100 | 95.09 | |
index.js | 90.6 | 75.38 | 100 | 90.52 |... 44,148,152,156 |
lib.js | 100 | 94.44 | 100 | 100 | 107 |
----------|----------|----------|----------|----------|-------------------|
`
This is an opinionated wrapper of c8, different in the following points:
* Runs both html and text reporter by default
* Automatically enables ECMAScript module support for .mjs files
* The first argument can be a JavaScript file path instead of a command
* Built-in Codecov support
``
npm install coverage
Once this package is installed to the project directory, users can execute coverage command inside npm scripts.

Execute the command, print code coverage to the stdout and write HTML reports under the ./coverage directory.
can be either a JavaScript file path or a command. If a path is provided, the file is run with the node command.
`console`
$ coverage /path/to/entry-point.js # is the same as ↓
$ coverage node /path/to/entry-point.js
If the provided JavaScript path ends with .mjs,
* ECMAScript module mode is automatically enabled.
* --es-module-specifier-resolution is automatically set to node.
#### Reporters
Users can override the default format of reports with --reporter option.
`console
$ coverage example.js
------------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
------------|----------|----------|----------|----------|-------------------|
All files | 100 | 100 | 100 | 100 | |
example.js | 100 | 100 | 100 | 100 | |
------------|----------|----------|----------|----------|-------------------|
$ coverage --reporter=text-summary example.js
=============================== Coverage summary ===============================
Statements : 100% ( 1/1 )
Branches : 100% ( 1/1 )
Functions : 100% ( 0/0 )
Lines : 100% ( 1/1 )
================================================================================
$ coverage --reporter=none example.js # No reports
`
#### Codecov integration
When the execution exits with code 0 on a CI service or GitHub Actions, it automatically uploads the generated coverage to Codecov. Whether CODECOV_TOKEN environment variable is required or not varies between services.
`console
$ coverage test.js
[... test results and coverage ...]
==> Travis CI detected.
==> Reading reports
+ /home/travis/build/shinnn/coverage/coverage/lcov.info bytes=1399
==> Gzipping contents
==> Uploading reports
-> Uploading
-> View reports at https://codecov.io/github/shinnn/coverage/commit/e4f5880b8ec5885e6a0b79030df5871e19d6de1d
`
c8 command-line options are supported. Run npx coverage --help to show the detailed reference for them.
Output a report in the format specified in --reporter option.
This subcommand is only available after coverage` has already been run.
ISC License © 2019 Shinnosuke Watanabe