5.0.1 • Public • Published


    npm version CI status

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


    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"


    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.');


    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.


    Using npx.

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

    npx coverage-node test.mjs

    Using a package.json script.

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


    Table of contents

    function analyseCoverage

    Analyzes Node.js generated V8 JavaScript code coverage data in a directory; useful for reporting.

    Parameter Type Description
    coverageDirPath string Code coverage data directory path.

    Returns: Promise<CoverageAnalysis> — Resolves the coverage analysis.


    Ways to import.

    import { analyseCoverage } from 'coverage-node';
    import analyseCoverage from 'coverage-node/public/analyseCoverage.mjs';

    function reportCoverage

    Reports a code coverage analysis to the console.

    Parameter Type Description
    coverageAnalysis CoverageAnalysis Coverage analysis from analyseCoverage.


    Ways to import.

    import { reportCoverage } from 'coverage-node';
    import reportCoverage from 'coverage-node/public/reportCoverage.mjs';

    constant coverageSupported

    Is the process Node.js version greater at least the minimum required to support code coverage.

    Type: boolean


    Ways to import.

    import { coverageSupported } from 'coverage-node';
    import coverageSupported from 'coverage-node/public/coverageSupported.mjs';

    constant coverageSupportedMinNodeVersion

    Minimum Node.js version supported for code coverage. Although Node.js v10+ supports coverage, only v13.3+ produces coverage data reliable enough to use.

    Type: SemanticVersion


    Ways to import.

    import { coverageSupportedMinNodeVersion } from 'coverage-node';
    import coverageSupportedMinNodeVersion from 'coverage-node/public/coverageSupportedMinNodeVersion.mjs';

    type CoverageAnalysis

    Node.js generated V8 JavaScript code coverage data analysis; useful for reporting.

    Type: object

    Property Type Description
    filesCount number Number of files analyzed.
    covered Array Covered file absolute paths.
    ignored Array<SourceCodeRanges> Ignored source code ranges.
    uncovered Array<SourceCodeRanges> Uncovered source code ranges.

    type SemanticVersion

    A semantic version.

    Type: object

    Property Type Description
    major number Major version.
    minor number Minor version.
    patch number Patch version.
    prerelease string? Prerelease version.
    build string? Build metadata.

    type SourceCodeLocation

    Source code location.

    Type: object

    Property Type Description
    offset number Character offset.
    line number Line number.
    column column Column number.

    type SourceCodeRange

    Source code range details.

    Type: object

    Property Type Description
    ignore boolean? Should it be ignored.
    start SourceCodeLocation Start location.
    end SourceCodeLocation End location.

    type SourceCodeRanges

    A source code file with ranges of interest.

    Type: object

    Property Type Description
    path string File absolute path.
    ranges Array<SourceCodeRange> Ranges of interest.


    npm i coverage-node

    DownloadsWeekly Downloads






    Unpacked Size

    33 kB

    Total Files


    Last publish


    • jaydenseric