diff --git a/test/_test.js b/test/_test.js index 2f646f24..4ff896cd 100644 --- a/test/_test.js +++ b/test/_test.js @@ -16,6 +16,43 @@ mocha.setup("bdd"); window.assert = chai.assert; +(function() { + var OriginalReporter = mocha._reporter; + + var SauceReporter = function(runner) { + var failedTests = []; + + runner.on('end', function() { + window.mochaResults = runner.stats; + window.mochaResults.reports = failedTests; + }); + + runner.on('fail', function(test, err) { + var flattenTitles = function(test) { + var titles = []; + while (test.parent.title) { + titles.push(test.parent.title); + test = test.parent; + } + return titles.reverse(); + }; + failedTests.push({ + name: test.title, + result: false, + message: err.message, + stack: err.stack, + titles: flattenTitles(test) + }); + }); + + new OriginalReporter(runner); + }; + + SauceReporter.prototype = OriginalReporter.prototype; + + mocha.reporter(SauceReporter); +}()); + /* * global helpers for tests */ diff --git a/test/test.js b/test/test.js index c571e391..9633d166 100644 --- a/test/test.js +++ b/test/test.js @@ -10890,6 +10890,43 @@ require.alias("chai/index.js", "chai/index.js");if (typeof exports == "object") mocha.setup("bdd"); window.assert = chai.assert; +(function() { + var OriginalReporter = mocha._reporter; + + var SauceReporter = function(runner) { + var failedTests = []; + + runner.on('end', function() { + window.mochaResults = runner.stats; + window.mochaResults.reports = failedTests; + }); + + runner.on('fail', function(test, err) { + var flattenTitles = function(test) { + var titles = []; + while (test.parent.title) { + titles.push(test.parent.title); + test = test.parent; + } + return titles.reverse(); + }; + failedTests.push({ + name: test.title, + result: false, + message: err.message, + stack: err.stack, + titles: flattenTitles(test) + }); + }); + + new OriginalReporter(runner); + }; + + SauceReporter.prototype = OriginalReporter.prototype; + + mocha.reporter(SauceReporter); +}()); + /* * global helpers for tests */