coverage
v0.4.1
Published
A command-line tool to collect and report code coverage of a JavaScript program
Downloads
36,855
Maintainers
Readme
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