egg-mock
Advanced tools
Comparing version 5.10.7 to 5.10.8
@@ -16,3 +16,3 @@ const assert = require('assert'); | ||
const Runner = mocha.Runner; | ||
const { Runner } = mocha; | ||
const runSuite = Runner.prototype.runSuite; | ||
@@ -33,12 +33,14 @@ const runTests = Runner.prototype.runTests; | ||
let app; | ||
const self = this; | ||
try { | ||
app = await appHandler.getApp(suite); | ||
debug('get app: %s', !!app); | ||
} catch (err) { | ||
err.message = `[egg-mock/runSuite] get app for ${getTestTitle(suite)}: ${err.message}`; | ||
this.fail(suite, err); | ||
return fn(suite); | ||
await app.ready(); | ||
} catch { | ||
// 可能 app.ready 时报错,不使用失败的 app | ||
app = null; | ||
} | ||
const self = this; | ||
if (!app) { | ||
// app 不存在,直接跳过,在 beforeEach 的 hook 中会报错 | ||
// 确保不打乱 mocha 的顺序,防止 mocha 内部状态错误 | ||
return runSuite.call(self, suite, fn); | ||
@@ -48,3 +50,2 @@ } | ||
try { | ||
await app.ready(); | ||
suite.ctx[MOCHA_SUITE_APP] = app; | ||
@@ -61,4 +62,10 @@ const mockContextFun = app.mockModuleContextScope || app.mockContextScope; | ||
} catch (err) { | ||
err.message = `[egg-mock/runSuite] inject context for ${getTestTitle(suite)}: ${err.message}`; | ||
self.fail(suite, err); | ||
// mockContext 失败后动态注册一个 beforeAll hook | ||
// 快速失败,直接阻塞后续用例 | ||
suite.beforeAll('egg-mock-mock-ctx-failed', async () => { | ||
throw err; | ||
}); | ||
return runSuite.call(self, suite, aErrSuite => { | ||
return fn(aErrSuite); | ||
}); | ||
} | ||
@@ -101,3 +108,2 @@ return fn(errSuite); | ||
} catch (err) { | ||
err.message = `[egg-mock/runTests] get app for ${getTestTitle(suite, test)}: ${err.message}`; | ||
self.fail(test, err); | ||
@@ -117,3 +123,2 @@ return next(i + 1); | ||
} catch (err) { | ||
err.message = `[egg-mock/runTests] create context for ${getTestTitle(suite)} error: ${err.message}`; | ||
self.fail(test, err); | ||
@@ -125,3 +130,2 @@ return next(i + 1); | ||
next(0).catch(err => { | ||
err.message = `[egg-mock/runTests] unknown error ${getTestTitle(suite)} error: ${err.message}`; | ||
self.fail(suite, err); | ||
@@ -128,0 +132,0 @@ done(suite); |
{ | ||
"name": "egg-mock", | ||
"version": "5.10.7", | ||
"version": "5.10.8", | ||
"eggPlugin": { | ||
@@ -5,0 +5,0 @@ "name": "egg-mock" |
2467
106728