-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
Description
This is derived from the conversations had here: bcoe/c8#116
Is your feature request related to a problem? Please describe.
The problem is with intergrating V8 coverage into downstream systems such as test runners or processes which run nodejs programs.
Describe the solution you'd like
The most ideal solution would be something like
// where it comes from isn't too important
const coverage = require('some-nodejs-module-maybe?');
const collection = coverage.collectCoverage({reporters: ['text-summary', 'lcov']});
jasmine.execute();
const reports = await collection.completeCoverage();
const textSummaryReport = reports.get(''text-summary');
console.log(textSummaryReport);
cons lcovReport = reports.get('lcov');
fs.writeFileSync('to/some/location', lcovReport);
// or maybe merge/process it in some other way
However it's my understanding that this approach wouldn't work very well since internally the collectCoverage would have to activate covergae via the inspector api which isn't the best.
bcoe/c8#116 (comment)
With that in mind another approach is using the NODE_V8_COVERAGE=/some/dir env var.
However an issue came accross with this one where we need to somehow signal Nodejs to write out the coverage file since we need to process it in in the same process.
bcoe/c8#116 (comment)
Describe alternatives you've considered
The two points above