@connectis/coverage-parser v1.0.8
coverage-parser
A Node.js library for parsing coverage reports.
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
}
]
}
}