Combine coverage reports from multiple runs in to a single coverage report.
var combine = require('istanbul-combine');
var opts = {
dir: 'coverage', // output directory for combined report(s)
pattern: 'coverage/*-coverage.json', // json reports to be combined
print: 'summary', // print to the console (summary, detail, both, none)
base:'sources', // base directory for resolving absolute paths, see karma bug
reporters: {
html: { /* html reporter options */ },
cobertura: { /* etc. */ }
}
};
combine(opts, function(err) { }); // async with node style completion callback
combine(opts).then(/* ... */ ); // async with promise return value
combine.sync(opts); // synchronous
npm install -g istanbul-combine
istanbul-combine -d coverage -p summary -r lcov -r html coverage/coverage-a.json coverage/coverage-b.json /coverage/*.json
usage: istanbul-combine [options] patterns
where patterns
is any number of file glob-patterns separated by whitespace
options:
-d
: output directory for the report(s). Defaults tocoverage
-p
: what to print to the console.summary
|detail
|both
|none
. Defaults tosummary
.-r
: a reporter.lcov
,html
, etc. You can specify multiple reporters by using this tag multiple times.-b
: base directory resolving relative paths to absolute ones. Fixes a bug with where karma reports relative file paths.
You will need to use the base
or -b
option if you intend to combine reports generated using karma-coverage
with
reports generated using other tools (i.e. tests not run in the browser).
See this pull request.