Back to directory
jaydenseric avatar

coverage-node

A simple CLI to run Node.js and report code coverage.. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/jaydenseric/coverage-node.git

55

Stars

3

Forks

2

Watchers

MIT

License

coverage-node

A simple CLI to run Node.js and report code coverage.

Installation

To install coverage-node 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

Supported operating systems:

  • Linux
  • macOS

Supported runtime environments:

  • Node.js versions ^14.17.0 || ^16.0.0 || >= 18.0.0.

Projects must configure TypeScript to use types from the ECMAScript modules that have a // @ts-check comment:

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 and there isn’t a truthy ALLOW_MISSING_COVERAGE environment variable the process exits with code 1.

Examples

npx can be used to quickly check code coverage for a script:

npx coverage-node test.mjs

A package.json script:

{
  "scripts": {
    "test": "coverage-node test.mjs"
  }
}

A package.json script that allows missing coverage:

{
  "scripts": {
    "test": "ALLOW_MISSING_COVERAGE=1 coverage-node test.mjs"
  }
}

Exports

The npm package coverage-node features optimal JavaScript module design. It doesn’t have a main index module, so use deep imports from the ECMAScript modules that are exported via the package.json field exports:

Releases

Aug 18, 2022

Version 8.0.0

Download .zip

Major

Use the node: URL scheme for Node.js builtin module imports. Migrated from the Node.js builtin module fs to node:fs/promises.

Patch

Updated dependencies.

Aug 17, 2022

Version 7.0.0

Download .zip

Major

Updated Node.js support to ^14.17.0 || ^16.0.0 || >= 18.0.0. Updated dev dependencies, some of which require newer Node.js versions than previously supported. The command coverage-node no longe...

Feb 17, 2022

Version 6.1.0

Download .zip

Minor

A truthy ALLOW_MISSING_COVERAGE environment variable can now be used with the coverage-node CLI to prevent missing coverage from causing the process to exit with code 1, via #2.

Patch

Updated...

Jan 30, 2022

Version 6.0.1

Download .zip

Patch

Simplified dev dependencies and config for ESLint. The private reportCliError function now explicitly calls .toString() for errors that don’t have a stack property. Stopped using the kleur chai...

Jan 26, 2022

Version 6.0.0

Download .zip

Major

Updated Node.js support to ^12.22.0 || ^14.17.0 || >= 16.0.0. Updated dependencies, some of which require newer Node.js versions than previously supported. Public modules are now individually l...