diff --git a/lib/runner.js b/lib/runner.js index fc69a687cf..bcc1f0e13a 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -386,8 +386,13 @@ Runner.prototype.hook = function(name, fn) { } if (err) { if (err instanceof Pending) { - if (name === HOOK_TYPE_BEFORE_EACH || name === HOOK_TYPE_AFTER_EACH) { + if (name === HOOK_TYPE_AFTER_EACH) { self.test.pending = true; + } else if (name === HOOK_TYPE_BEFORE_EACH) { + self.test.pending = true; + if (err.message === 'sync skip') { + return fn(err); + } } else { suite.tests.forEach(function(test) { test.pending = true; @@ -634,7 +639,9 @@ Runner.prototype.runTests = function(suite, fn) { self.emit(constants.EVENT_TEST_PENDING, test); } self.emit(constants.EVENT_TEST_END, test); - return next(); + self.suite = errSuite; + return self.hookUp(HOOK_TYPE_AFTER_EACH, next); + // return next(); } if (err) { return hookErr(err, errSuite, false);