coverage-node

    5.0.1 • Public • Published

    coverage-node

    npm version CI status

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

    Setup

    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"
       }
     }

    Support

    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

    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"
      }
    }

    API

    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.

    Examples

    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.

    Examples

    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

    Examples

    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

    Examples

    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.

    Install

    npm i coverage-node

    DownloadsWeekly Downloads

    284

    Version

    5.0.1

    License

    MIT

    Unpacked Size

    33 kB

    Total Files

    15

    Last publish

    Collaborators

    • jaydenseric