Package Exports
- coverage-node/analyseCoverage.mjs
- coverage-node/coverageSupported.mjs
- coverage-node/coverageSupportedMinNodeVersion.mjs
- coverage-node/package.json
- coverage-node/reportCoverage.mjs
Readme
coverage-node
A simple CLI to run Node.js and report code coverage.
- ✨ Zero config.
- 🏁 Tiny SLOC, written from scratch to use code coverage features built into Node.js v10+.
- 📦 Lean install size, compared to 2.2 MB for
c8
v7.7.1 or 8.84 MB fornyc
v15.1.0. - 🖱 Displays ignored or uncovered source code ranges as paths, clickable in IDEs such as VS Code.
Installation
To install with npm, run:
npm install coverage-node --save-dev
In a package.json
script, replace the node
command with coverage-node
:
{
"scripts": {
- "test": "node test.mjs"
+ "test": "coverage-node test.mjs"
}
}
Requirements
- Operating system:
- Linux
- macOS
- Node.js:
^12.22.0 || ^14.17.0 || >= 16.0.0
, but for Node.js versions < v13.3 that produce unreliable coverage data the commandcoverage-node
skips code coverage and logs a warning.
Ignored files
Code coverage analysis ignores:
node_modules
directory files, e.g.node_modules/foo/index.mjs
.test
directory files, e.g.test/index.mjs
.- Files with
.test
prefixed before the extension, e.g.foo.test.mjs
. - Files named
test
(regardless of extension), e.g.test.mjs
.
Ignored lines
In source code, a comment (case insensitive) can be used to ignore code coverage ranges that start on the the next line:
// coverage ignore next line
if (false) console.log("Never runs.");
CLI
Command coverage-node
Substitutes the normal node
command; any node
CLI options can be used to run a test script. If the script doesn’t error a code coverage analysis is reported to the console, and if coverage is incomplete the exit code is 1
.
Examples
npx
can be used to quickly check code coverage for a script:
npx coverage-node test.mjs
{
"scripts": {
"test": "coverage-node test.mjs"
}
}
Exports
These ECMAScript modules are published to npm and exported via the package.json
exports
field: