mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/10856 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>v7.x
Wayne Andrews
8 years ago
committed by
Anna Henningsen
5 changed files with 123 additions and 2 deletions
@ -0,0 +1,46 @@ |
|||||
|
'use strict'; |
||||
|
const process = require('process'); |
||||
|
const path = require('path'); |
||||
|
const fs = require('fs'); |
||||
|
const mkdirSync = fs.mkdirSync; |
||||
|
const writeFileSync = fs.writeFileSync; |
||||
|
|
||||
|
var isWritingCoverage = false; |
||||
|
function writeCoverage() { |
||||
|
if (isWritingCoverage || !global.__coverage__) { |
||||
|
return; |
||||
|
} |
||||
|
isWritingCoverage = true; |
||||
|
|
||||
|
const dirname = path.join(path.dirname(process.execPath), '.coverage'); |
||||
|
const filename = `coverage-${process.pid}-${Date.now()}.json`; |
||||
|
try { |
||||
|
mkdirSync(dirname); |
||||
|
} catch (err) { |
||||
|
if (err.code !== 'EEXIST') { |
||||
|
console.error(err); |
||||
|
return; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
const target = path.join(dirname, filename); |
||||
|
const coverageInfo = JSON.stringify(global.__coverage__); |
||||
|
try { |
||||
|
writeFileSync(target, coverageInfo); |
||||
|
} catch (err) { |
||||
|
console.error(err); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function setup() { |
||||
|
const reallyReallyExit = process.reallyExit; |
||||
|
|
||||
|
process.reallyExit = function(code) { |
||||
|
writeCoverage(); |
||||
|
reallyReallyExit(code); |
||||
|
}; |
||||
|
|
||||
|
process.on('exit', writeCoverage); |
||||
|
} |
||||
|
|
||||
|
exports.setup = setup; |
Loading…
Reference in new issue