2
0
mirror of synced 2025-02-23 19:48:28 +00:00

Added reporter support for skipped tests.

This commit is contained in:
Richard Moore 2020-06-01 04:47:06 -04:00
parent 42dee67187
commit 9e81012540
No known key found for this signature in database
GPG Key ID: 665176BE8E9DC651

View File

@ -28,6 +28,7 @@ interface Suite {
_countFail: number; _countFail: number;
_countPass: number; _countPass: number;
_countTotal: number; _countTotal: number;
_countSkip: number;
} }
interface Runner { interface Runner {
@ -68,26 +69,42 @@ export function Reporter(runner: Runner) {
if (filename) { filename = ' (' + filename + ')'; } if (filename) { filename = ' (' + filename + ')'; }
log('Test Suite: ' + suite.title + filename); log('Test Suite: ' + suite.title + filename);
} }
suites.push(suite); suites.push(suite);
suite._t0 = getTime(); suite._t0 = getTime();
suite._countFail = 0; suite._countFail = 0;
suite._countPass = 0; suite._countPass = 0;
suite._countSkip = 0;
suite._countTotal = 0; suite._countTotal = 0;
}); });
runner.on('suite end', function() { runner.on('suite end', function() {
let suite = suites.pop(); let suite = suites.pop();
let failure = '';
if (suite._countTotal > suite._countPass) { let extras = [ ];
failure = ' (' + (suite._countTotal - suite._countPass) + ' failed) *****';
if (suite._countSkip) {
extras.push(suite._countSkip + " skipped");
} }
log(' Total Tests: ' + suite._countPass + '/' + suite._countTotal + ' passed ' + getDelta(suite._t0) + failure);
if (suite._countTotal > suite._countPass) {
extras.push((suite._countTotal - suite._countPass) + " failed");
}
let extra = "";
if (extras.length) {
extra = " (" + extras.join(",") + ") ******** WARNING! ********";
}
log(` Total Tests: ${ suite._countPass }/${ suite._countTotal } passed ${ getDelta(suite._t0) } ${ extra} `);
log(); log();
if (suites.length > 0) { if (suites.length > 0) {
let currentSuite = suites[suites.length - 1]; let currentSuite = suites[suites.length - 1];
currentSuite._countFail += suite._countFail; currentSuite._countFail += suite._countFail;
currentSuite._countPass += suite._countPass; currentSuite._countPass += suite._countPass;
currentSuite._countSkip += suite._countSkip;
currentSuite._countTotal += suite._countTotal; currentSuite._countTotal += suite._countTotal;
} else { } else {
clearTimeout(timer); clearTimeout(timer);
@ -119,12 +136,15 @@ export function Reporter(runner: Runner) {
} }
log('Failure: ' + test.title); log('Failure: ' + test.title);
error.toString().split('\n').forEach((line: string) => { error.toString().split('\n').forEach((line: string) => {
log(' ' + line); log(' ' + line);
}); });
Object.keys(error).forEach(function(key) { Object.keys(error).forEach(function(key) {
log(' ' + key + ': ' + error[key]); log(' ' + key + ': ' + error[key]);
}); });
if (error.stack) { if (error.stack) {
log("Stack Trace:"); log("Stack Trace:");
error.stack.split('\n').forEach((line: string) => { error.stack.split('\n').forEach((line: string) => {
@ -137,5 +157,10 @@ export function Reporter(runner: Runner) {
let currentSuite = suites[suites.length - 1]; let currentSuite = suites[suites.length - 1];
currentSuite._countPass++; currentSuite._countPass++;
}); });
runner.on('pending', function(test) {
let currentSuite = suites[suites.length - 1];
currentSuite._countSkip++;
});
} }