如何在 Mocha 根级挂钩中设置超时?
How to set timeout in Mocha root-level hooks?
我想为 Mocha 测试的根级别挂钩设置超时。
我的根级钩子看起来像这样,在 test/setup.ts
:
import * as database from '../src/database/_db'
export const mochaHooks = {
/* Connect to the DB before running any tests */
beforeAll(done: () => void) {
database.initialize(done)
},
/* Close the DB connect after all tests finished */
afterAll(done: () => void) {
database.close(done);
}
};
这是通过 --require test/setup.ts
加载的。数据库连接需要很长时间,所以我想增加超时值。
运行 Mocha with -t 10000
可以工作,但也会为每个测试设置超时。
我也尝试在 BeforeAll
中添加 this.timeout(3000)
但得到 ✖ ERROR: test/setup.ts:10:14 - error TS2339: Property 'timeout' does not exist on type '{ beforeAll(done: () => void): void; afterAll(done: () => void): void; }'.
来自文档 ARROW FUNCTIONS:
Passing arrow functions (aka “lambdas”) to Mocha is discouraged. Lambdas lexically bind this
and cannot access the Mocha context.
使用箭头函数时未绑定测试上下文。所以你不能使用 this.timeout()
.
您应该将箭头函数更改为 function declaration,其中包含 function
关键字。
我想为 Mocha 测试的根级别挂钩设置超时。
我的根级钩子看起来像这样,在 test/setup.ts
:
import * as database from '../src/database/_db'
export const mochaHooks = {
/* Connect to the DB before running any tests */
beforeAll(done: () => void) {
database.initialize(done)
},
/* Close the DB connect after all tests finished */
afterAll(done: () => void) {
database.close(done);
}
};
这是通过 --require test/setup.ts
加载的。数据库连接需要很长时间,所以我想增加超时值。
运行 Mocha with -t 10000
可以工作,但也会为每个测试设置超时。
我也尝试在 BeforeAll
中添加 this.timeout(3000)
但得到 ✖ ERROR: test/setup.ts:10:14 - error TS2339: Property 'timeout' does not exist on type '{ beforeAll(done: () => void): void; afterAll(done: () => void): void; }'.
来自文档 ARROW FUNCTIONS:
Passing arrow functions (aka “lambdas”) to Mocha is discouraged. Lambdas lexically bind
this
and cannot access the Mocha context.
使用箭头函数时未绑定测试上下文。所以你不能使用 this.timeout()
.
您应该将箭头函数更改为 function declaration,其中包含 function
关键字。