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(''); } }; };