module.exports = function () {
return {
noColors: true,
report: '',
startTime: null,
uaList: null,
currentFixture: null,
testCount: 0,
skipped: 0,
reportTaskStart (startTime, userAgents, testCount) {
this.startTime = startTime;
this.uaList = userAgents.join(', ');
this.testCount = testCount;
},
reportFixtureStart (name, path) {
this.currentFixture = { name: this.escapeHtml(name), path: path };
},
_renderErrors (errs) {
this.report += this.indentString('\n', 4);
this.report += this.indentString(' {
err = this.formatError(err, `${idx + 1}) `);
this.report += '\n';
this.report += this.indentString(err, 6);
this.report += '\n';
});
this.report += this.indentString(']]>\n', 4);
this.report += this.indentString('\n', 4);
},
reportTestDone (name, testRunInfo) {
var hasErr = !!testRunInfo.errs.length;
if (testRunInfo.unstable)
name += ' (unstable)';
if (testRunInfo.screenshotPath)
name += ` (screenshots: ${testRunInfo.screenshotPath})`;
name = this.escapeHtml(name);
var openTag = `\n`;
this.report += this.indentString(openTag, 2);
if (testRunInfo.skipped) {
this.skipped++;
this.report += this.indentString('\n', 4);
}
else if (hasErr)
this._renderErrors(testRunInfo.errs);
this.report += this.indentString('\n', 2);
},
_renderWarnings (warnings) {
this.setIndent(2)
.write('')
.newline()
.write(' {
this.setIndent(4)
.write('--')
.newline()
.setIndent(0)
.write(this.indentString(msg, 6))
.newline();
});
this.setIndent(2)
.write(']]>')
.newline()
.write('')
.newline();
},
reportTaskDone (endTime, passed, warnings) {
var name = `TestCafe Tests: ${this.escapeHtml(this.uaList)}`;
var failures = this.testCount - passed;
var time = (endTime - this.startTime) / 1000;
this.write('')
.newline()
.write(``)
.newline()
.write(this.report);
if (warnings.length)
this._renderWarnings(warnings);
this.setIndent(0)
.write('');
}
};
};