Skip to content

Instantly share code, notes, and snippets.

@mkusher
Created February 11, 2016 10:52
Show Gist options
  • Save mkusher/8ae11dbec6e502ba9596 to your computer and use it in GitHub Desktop.
Save mkusher/8ae11dbec6e502ba9596 to your computer and use it in GitHub Desktop.
var path = require("path");
var remapIstanbul = require("remap-istanbul");
var MemoryStore = require("istanbul/lib/store/memory");
var istanbul = require("istanbul");
function remapCoverage (sources, reports) {
var remap = remapIstanbul.remap;
var loadCoverage = remapIstanbul.loadCoverage;
var writeReport = remapIstanbul.writeReport;
var sourceStore = new MemoryStore();
var collector = remap(loadCoverage(sources), {
sources: sourceStore,
readFile: function(filePath) {
var filename = path.basename(filePath);
var f = "//@ sourceMappingURL = " + filename + ".map";
return f;
}
});
if (!Object.keys(sourceStore.map).length) {
sourceStore = undefined;
}
var p = Object.keys(reports).map(function (reportType) {
try {
return writeReport(collector, reportType, reports[reportType], sourceStore);
} catch (e) {
return Promise.resolve(1);
}
});
return Promise.all(p);
}
module.exports = function GenerateCoverageOutput() {
var sync = true, coverageVar = "__coverage__",
collector = new istanbul.Collector(),
reporter = new istanbul.Reporter();
collector.add(global[coverageVar]);
reporter.addAll(["json", "text-summary"]);
reporter.write(collector, sync, function() {
remapCoverage(path.join(__dirname, "../../../../../coverage/coverage-final.json"), {
"text-summary": "",
"lcov": "coverage",
"html": "coverage"
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment