diff --git a/lib/config.js b/lib/config.js index f2047ec4b..fb0a92216 100644 --- a/lib/config.js +++ b/lib/config.js @@ -145,11 +145,6 @@ var normalizeConfig = function (config, configFilePath) { config.autoWatch = false } - if (!config.singleRun && config.browserDisconnectTolerance) { - log.debug('browserDisconnectTolerance set to 0, because of singleRun') - config.browserDisconnectTolerance = 0 - } - if (helper.isString(config.reporters)) { config.reporters = config.reporters.split(',') } diff --git a/lib/server.js b/lib/server.js index a0fdf369c..2d96cb35a 100644 --- a/lib/server.js +++ b/lib/server.js @@ -292,26 +292,34 @@ Server.prototype._start = function (config, launcher, preprocess, fileList, webS } } - if (config.singleRun) { - self.on('browser_complete', function (completedBrowser) { - if (completedBrowser.lastResult.disconnected && - completedBrowser.disconnectsCount <= config.browserDisconnectTolerance) { - self.log.info('Restarting %s (%d of %d attempts)', completedBrowser.name, - completedBrowser.disconnectsCount, config.browserDisconnectTolerance) - if (!launcher.restart(completedBrowser.id)) { - singleRunDoneBrowsers[completedBrowser.id] = true - emitRunCompleteIfAllBrowsersDone() - } - } else { - singleRunDoneBrowsers[completedBrowser.id] = true + self.on('browser_complete', function (completedBrowser) { + if (completedBrowser.lastResult.disconnected && + completedBrowser.disconnectsCount <= config.browserDisconnectTolerance) { + self.log.info('Restarting %s (%d of %d attempts)', completedBrowser.name, + completedBrowser.disconnectsCount, config.browserDisconnectTolerance) + + if (!launcher.restart(completedBrowser.id)) { + self.emit('browser_restart_failure', completedBrowser) + } + } else { + self.emit('browser_complete_with_no_more_retries', completedBrowser) + } + }) - if (launcher.kill(completedBrowser.id)) { - // workaround to supress "disconnect" warning - completedBrowser.state = Browser.STATE_DISCONNECTED - } + if (config.singleRun) { + self.on('browser_restart_failure', function (completedBrowser) { + singleRunDoneBrowsers[completedBrowser.id] = true + emitRunCompleteIfAllBrowsersDone() + }) + self.on('browser_complete_with_no_more_retries', function (completedBrowser) { + singleRunDoneBrowsers[completedBrowser.id] = true - emitRunCompleteIfAllBrowsersDone() + if (launcher.kill(completedBrowser.id)) { + // workaround to supress "disconnect" warning + completedBrowser.state = Browser.STATE_DISCONNECTED } + + emitRunCompleteIfAllBrowsersDone() }) self.on('browser_process_failure', function (browserLauncher) {