@connectis/coverage-parser

1.0.8 • Public • Published

coverage-parser

A Node.js library for parsing coverage reports.

NPM versionDependency Status

This library bundles different coverage parsers that parse coverage information in a uniform way. Supported coverage report formats:

Note: if you want to merge the parsed results you can use @connectis/coverage-merger.

Example

const coverageParser = require('@connectis/coverage-parser');

coverageParser
    .parseGlobs('**/lcov.info', {
        type: 'lcov'
    })
    .then(results => console.log(results));

API

The API includes the following:

  • parseGlobs(globs, options)
  • parseFiles(files, options)
  • parseFile(file, options)
  • types

types

Type Array<string>

Array of available parser types.

options

Type object

options.type

Type: string

The type of parser which should be used for parsing the coverage files. See the exported types array for available types.

options.parser

Type: function

Custom parser function for parsing the coverage files: (file) => Promise<Array<CoverageResult>>. See below.

options.pathMode

Type: 'absolute' | 'relative' | 'unmodified'

Default: 'absolute'

The type of paths that should be used in the parsed result. See options.baseDir.

options.baseDir

Type: string

Default: process.cwd()

The base directory that will be used for making paths relative or absolute in the coverage reports. See options.pathMode.

parseGlobs(globs, options)

Finds all coverage reports matching the glob patterns and parses the results.

globs

Type: Array<string>|string

Either an of glob patterns or a single glob pattern.

options

Type: options. See above.

options.globOptions

Type: object

Options to pass to fast-glob.

returns

Type: Promise<Array<CoverageResult>>. See below.

parseFiles(files, options)

Parses all coverage reports files.

files

Type: Array<string>

An array of file paths.

options

Type: options. See above.

returns

Type: Promise<Array<CoverageResult>>. See below.

parseFile(file, options)

Parses the coverage reports file.

file

Type: string

The file path.

options

Type: options. See above.

returns

Type: Promise<Array<CoverageResult>>. See below.

CoverageResult

The returned data has the following format.

{
  "title": "Test #1",
  "file": "/some/absolute/path/anim-base/anim-base-coverage.js",
  "functions": {
    "hit": 23,
    "found": 29,
    "details": [
      {
        "name": "(anonymous 1)",
        "line": 7,
        "hit": 6
      },
      {
        "name": "(anonymous 2)",
        "line": 620,
        "hit": 225
      },
      {
        "name": "_end",
        "line": 516,
        "hit": 228
      }
    ]
  },
  "lines": {
    "found": 181,
    "hit": 143,
    "details": [
      {
        "line": 7,
        "hit": 6
      },
      {
        "line": 29,
        "hit": 6
      },
      {
        "line": 41,
        "hit": 0
      }
    ]
  },
  "branches": {
    "found": 2,
    "hit": 1,
    "details": [
      {
        "line": 9,
        "branch": 0,
        "taken": 0
      },
      {
        "line": 9,
        "branch": 1,
        "taken": 1
      }
    ]
  }
}

Package Sidebar

Install

npm i @connectis/coverage-parser

Weekly Downloads

5,562

Version

1.0.8

License

MIT

Unpacked Size

8.54 kB

Total Files

6

Last publish

Collaborators

  • marklagendijk
  • marklagendijk-connectis