coverage
A command-line tool to collect and report code coverage of a JavaScript program
$ 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
andtext
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
Installation
npm install coverage
Once this package is installed to the project directory, users can execute coverage
command inside npm scripts.
CLI
coverage [options] <file|command> [args]
Execute the command, print code coverage to the stdout and write HTML reports under the ./coverage
directory.
<file|command>
can be either a JavaScript file path or a command. If a path is provided, the file is run with the node
command.
$ 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 tonode
.
Reporters
Users can override the default format of reports with --reporter
option.
$ 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.
$ 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.
coverage report
Output a report in the format specified in --reporter
option.
This subcommand is only available after coverage
has already been run.
License
ISC License © 2019 Shinnosuke Watanabe