diff --git a/src/cli.js b/src/cli.js index 7fc567b..ccf637e 100644 --- a/src/cli.js +++ b/src/cli.js @@ -58,6 +58,7 @@ module.exports = (opts) => { // runOpts.margs.argv.framework.indexOf("mocha") > -1; const debug = runOpts.margs.argv.debug || false; + const showPassedTests = runOpts.margs.argv.show_passed_tests || false; const useSerialMode = runOpts.margs.argv.serial; let MAX_TEST_ATTEMPTS = parseInt(runOpts.margs.argv.max_test_attempts) || 3; let targetProfiles; @@ -408,6 +409,7 @@ module.exports = (opts) => { const testRunner = new runOpts.TestRunner(tests, { debug, + showPassedTests, maxWorkers: MAX_WORKERS, diff --git a/src/help.js b/src/help.js index c1ec1d8..d840309 100644 --- a/src/help.js +++ b/src/help.js @@ -71,6 +71,11 @@ module.exports = { "visible": true, "description": "Enable debugging magellan messages (dev mode)." }, + "show_passed_tests": { + "category": "Parallelism, Workflow and Filtering", + "visible": true, + "description": "Show passed tests output." + }, "config": { "category": "Configuration", "visible": true, diff --git a/src/settings.js b/src/settings.js index 33f1a4a..6367362 100644 --- a/src/settings.js +++ b/src/settings.js @@ -76,6 +76,7 @@ module.exports = { environment: env, debug: argv.debug, + showPassedTests: argv.show_passed_tests, gatherTrends: argv.gather_trends, diff --git a/src/test_runner.js b/src/test_runner.js index f8e0fe5..7b6c662 100644 --- a/src/test_runner.js +++ b/src/test_runner.js @@ -37,6 +37,7 @@ const FINAL_CLEANUP_DELAY = 2500; // getEnvironment - function(worker, test) that returns a key value object to use as the // process environment // debug - true/false flag for magellan debugging mode +// showPassedTests - true/false flag for magellan show passed tests mode // onSuccess - function() callback // onFailure - function(failedTests) callback // opts: testing options @@ -69,6 +70,7 @@ class TestRunner { this.profiles = options.profiles; this.executors = options.executors; this.debug = options.debug; + this.showPassedTests = options.showPassedTests; this.serial = options.serial || false; @@ -617,6 +619,19 @@ class TestRunner { } } + logPassedTests() { + logger.log(clc.greenBright("============= Passed Tests: =============")); + + this.passedTests.forEach((passedTest) => { + logger.log("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); + logger.log("Passed Test: " + passedTest.toString()); + logger.log(" # attempts: " + passedTest.attempts); + logger.log(" output: "); + logger.log(passedTest.stdout); + logger.log(passedTest.stderr); + }); + } + logFailedTests() { logger.log(clc.redBright("============= Failed Tests: =============")); @@ -639,6 +654,12 @@ class TestRunner { this.gatherTrends(); + if (this.showPassedTests) { + if (this.passedTests.length > 0) { + this.logPassedTests(); + } + } + if (this.failedTests.length > 0) { this.logFailedTests(); } diff --git a/src/worker_allocator.js b/src/worker_allocator.js index 20d9cc0..a04ce02 100644 --- a/src/worker_allocator.js +++ b/src/worker_allocator.js @@ -17,7 +17,8 @@ class Allocator { setTimeout, checkPorts: portUtil.checkPorts, getNextPort: portUtil.getNextPort, - debug: settings.debug + debug: settings.debug, + showPassedTests: settings.showPassedTests // Is this needed ? }, opts); logger.debug("Worker Allocator starting.");