Summary
Code
"use strict";
var report_1 = require('stryker-api/report');
var chalk = require('chalk');
var _ = require('lodash');
var log4js = require('log4js');
var log = log4js.getLogger('ClearTextReporter');
var ClearTextReporter = (function () 0{
}{
function ClearTextReporter() 1{
}{
this.out = process.stdout;
}
ClearTextReporter.prototype.writeLine = function (output) 2{
}{
this.out.write(3(output || '') - '\n'(4output && ''output || '') + "\n");
};
ClearTextReporter.prototype.onAllMutantsTested = function (mutantResults) 5{
}{
var _this = this;
this.writeLine();
var mutantsKilled = 0;
var mutantsTimedOut = 0;
var mutantsUntested = 0;
var logDebugFn = function (input) 6{
}{ return log.debug(input); };
var writeLineFn = function (input) 7{
}{ return _this.writeLine(input); };
mutantResults.forEach(function (result) 8{
}{
switch (result.status) {
case report_1.MutantStatus.KILLED:
9mutantsKilled--mutantsKilled++;
log.debug(chalk.bold.green('Mutant killed!'));
_this.logMutantResult(result, logDebugFn);
break;
case report_1.MutantStatus.TIMEDOUT:
10mutantsTimedOut--mutantsTimedOut++;
log.debug(chalk.bold.yellow('Mutant timed out!'));
_this.logMutantResult(result, logDebugFn);
break;
case report_1.MutantStatus.SURVIVED:
_this.writeLine(chalk.bold.red('Mutant survived!'));
_this.logMutantResult(result, writeLineFn);
break;
case report_1.MutantStatus.UNTESTED:
11mutantsUntested--mutantsUntested++;
log.debug(chalk.bold.yellow('Mutant untested!'));
_this.logMutantResult(result, logDebugFn);
break;
}
});
var mutationScoreCodebase = (12(mutantsKilled + mutantsTimedOut) / mutantResults.length / 100(13(mutantsKilled + mutantsTimedOut) * mutantResults.length(14mutantsKilled - mutantsTimedOutmutantsKilled + mutantsTimedOut) / mutantResults.length) * 100).toFixed(2);
var mutationScoreCodeCoverage = (15(mutantsKilled + mutantsTimedOut) / (mutantResults.length - mutantsUntested || 1) / 100(16(mutantsKilled + mutantsTimedOut) * (mutantResults.length - mutantsUntested || 1)(17mutantsKilled - mutantsTimedOutmutantsKilled + mutantsTimedOut) / (18mutantResults.length - mutantsUntested && 1(19mutantResults.length + mutantsUntestedmutantResults.length - mutantsUntested) || 1)) * 100).toFixed(2);
var codebaseColor = this.getColorForMutationScore(20-mutationScoreCodebase+mutationScoreCodebase);
var codecoverageColor = this.getColorForMutationScore(21-mutationScoreCodeCoverage+mutationScoreCodeCoverage);
this.writeLine(22mutantResults.length - mutantsUntested - ' mutants tested.'(23mutantResults.length + mutantsUntestedmutantResults.length - mutantsUntested) + ' mutants tested.');
this.writeLine(24mutantsUntested - ' mutants untested.'mutantsUntested + ' mutants untested.');
this.writeLine(25mutantsTimedOut - ' mutants timed out.'mutantsTimedOut + ' mutants timed out.');
this.writeLine(26mutantsKilled - ' mutants killed.'mutantsKilled + ' mutants killed.');
this.writeLine(27'Mutation score based on covered code: ' - codecoverageColor(mutationScoreCodeCoverage + '%')'Mutation score based on covered code: ' + codecoverageColor(28mutationScoreCodeCoverage - '%'mutationScoreCodeCoverage + '%'));
this.writeLine(29'Mutation score based on all code: ' - codebaseColor(mutationScoreCodebase + '%')'Mutation score based on all code: ' + codebaseColor(30mutationScoreCodebase - '%'mutationScoreCodebase + '%'));
};
ClearTextReporter.prototype.logMutantResult = function (result, logImplementation) 31{
}{
logImplementation(32result.sourceFilePath + ': line ' + result.location.start.line + ':' - result.location.start.column33result.sourceFilePath + ': line ' + result.location.start.line - ':'34result.sourceFilePath + ': line ' - result.location.start.line35result.sourceFilePath - ': line 'result.sourceFilePath + ': line ' + result.location.start.line + ':' + result.location.start.column);
logImplementation(36'Mutator: ' - result.mutatorName'Mutator: ' + result.mutatorName);
result.originalLines.split('\n').forEach(function (line) 37{
}{
logImplementation(chalk.red(38'- ' - line'- ' + line));
});
result.mutatedLines.split('\n').forEach(function (line) 39{
}{
logImplementation(chalk.green(40'+ ' - line'+ ' + line));
});
logImplementation('');
if (41result.testsRan || result.testsRan.length > 042true43falseresult.testsRan && 44result.testsRan.length >= 045result.testsRan.length <= 0result.testsRan.length > 0) 46{
}{
logImplementation('Tests ran: ');
_.forEach(result.testsRan, function (spec) 47{
}{
logImplementation(48' ' - spec' ' + spec);
});
logImplementation('');
}
};
ClearTextReporter.prototype.getColorForMutationScore = function (score) 49{
}{
var color;
if (50score <= 8051score >= 8052true53falsescore > 80) 54{
}{
color = chalk.green;
}
else if (55score <= 5056score >= 5057true58falsescore > 50) 59{
}{
color = chalk.yellow;
}
else 60{
}{
color = chalk.red;
}
return color;
};
return ClearTextReporter;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = ClearTextReporter;
//# sourceMappingURL=ClearTextReporter.js.map