MochaJS:如何在全局 mocha 实例中调用规范级别的挂钩?
MochaJS: How to call spec level hooks in the global mocha instance?
有没有办法在每个规范前后 运行 挂钩?
例如,有 3 个 *.spec.js
文件,控制台标准输出应打印如下..
(我知道这可以在单个规范本身的钩子之前完成。但这意味着在所有规范文件中编写大量重复代码。)
有 rootHooks 但它们会在所有规范的前后打印 运行。我的要求是在每个规格之前和之后打印(而不是在整个套件之前和之后)
Spec started at : 12:00:00 (<-- called from global spec level beforeHook)
✓ Spec 1 tests
✓ ...
✓ ...
Spec Ended at : 12:00:10 (<-- called from global spec level afterHook)
Spec started at : 12:00:11 (<-- called from global spec level beforeHook)
✓ Spec 2 tests
✓ ...
✓ ...
Spec Ended at : 12:00:15 (<-- called from global spec level afterHook)
Spec started at : 12:00:15 (<-- called from global spec level beforeHook)
✓ Spec 3 tests
✓ ...
✓ ...
Spec Ended at : 12:00:20 (<-- called from global spec level afterHook)
我相信你可以使用 root hook。
// test/timer-hooks.js
function timer() {
// Get the time and format it as a string
}
exports.mochaHooks = {
beforeEach(done) {
console.log(`Spec started at : ${timer()}`);
done();
},
afterEach(done) {
console.log(`Spec ended at : ${timer()}`);
done();
}
};
然后,当 运行 测试时,添加 --require test/timer-hooks.js
。
mocha --require test/timer-hooks.js
有没有办法在每个规范前后 运行 挂钩?
例如,有 3 个 *.spec.js
文件,控制台标准输出应打印如下..
(我知道这可以在单个规范本身的钩子之前完成。但这意味着在所有规范文件中编写大量重复代码。)
有 rootHooks 但它们会在所有规范的前后打印 运行。我的要求是在每个规格之前和之后打印(而不是在整个套件之前和之后)
Spec started at : 12:00:00 (<-- called from global spec level beforeHook)
✓ Spec 1 tests
✓ ...
✓ ...
Spec Ended at : 12:00:10 (<-- called from global spec level afterHook)
Spec started at : 12:00:11 (<-- called from global spec level beforeHook)
✓ Spec 2 tests
✓ ...
✓ ...
Spec Ended at : 12:00:15 (<-- called from global spec level afterHook)
Spec started at : 12:00:15 (<-- called from global spec level beforeHook)
✓ Spec 3 tests
✓ ...
✓ ...
Spec Ended at : 12:00:20 (<-- called from global spec level afterHook)
我相信你可以使用 root hook。
// test/timer-hooks.js
function timer() {
// Get the time and format it as a string
}
exports.mochaHooks = {
beforeEach(done) {
console.log(`Spec started at : ${timer()}`);
done();
},
afterEach(done) {
console.log(`Spec ended at : ${timer()}`);
done();
}
};
然后,当 运行 测试时,添加 --require test/timer-hooks.js
。
mocha --require test/timer-hooks.js