全局更改默认超时或仅更改一次测试的最佳做法是什么?摩卡咖啡
what is a good practice to change the default timeout globally or for one test only? mocha
我正在使用 before
钩子和 try catch
块来调用我的 try 块中的一些功能。所以 before
块在每个 it
.
之前运行
describe('Function response', ()=> {
// this.timeout(5000); //here
let response;
before(async () => {
// this.timeout(500000); //or here
try {
response = await myFunction(argument);
} catch (err) {
assert.fail(err);//seems doesn't work
}
});
it('function response to be an array', () => {
expect(response).to.be.an('array');
});
});
我遇到了这个错误
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
在打开其中一条更改默认超时的评论后,当然是在将箭头功能设置为常规后,测试按预期进行。
我想知道最佳做法是什么。也许最好更改 test
脚本中的默认超时?
"test": "mocha -r ts-node/register src/**/*.spec.ts --timeout 5000
也许我没有正确处理 catch
块中的错误?
最佳做法是在需要的范围内设置超时:
describe('something', function() {
this.timeout(100); // sets the timeout for everything in "describe"
before(function(done) {
this.timeout(500); // sets the timeout ONLY for "before"
setTimeout(done, 450); // <= this works
});
it('should do something', function (done) {
setTimeout(done, 150); // <= this times out
});
});
- 如果您的 所有 测试需要特定超时,请在全局级别设置它
- 如果您需要为
describe
中的 所有内容 设置特定超时,请在 describe
中设置它
- 如果您需要 one
before
、it
等的特定超时,请在该函数中设置它
我正在使用 before
钩子和 try catch
块来调用我的 try 块中的一些功能。所以 before
块在每个 it
.
describe('Function response', ()=> {
// this.timeout(5000); //here
let response;
before(async () => {
// this.timeout(500000); //or here
try {
response = await myFunction(argument);
} catch (err) {
assert.fail(err);//seems doesn't work
}
});
it('function response to be an array', () => {
expect(response).to.be.an('array');
});
});
我遇到了这个错误
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
在打开其中一条更改默认超时的评论后,当然是在将箭头功能设置为常规后,测试按预期进行。
我想知道最佳做法是什么。也许最好更改 test
脚本中的默认超时?
"test": "mocha -r ts-node/register src/**/*.spec.ts --timeout 5000
也许我没有正确处理 catch
块中的错误?
最佳做法是在需要的范围内设置超时:
describe('something', function() {
this.timeout(100); // sets the timeout for everything in "describe"
before(function(done) {
this.timeout(500); // sets the timeout ONLY for "before"
setTimeout(done, 450); // <= this works
});
it('should do something', function (done) {
setTimeout(done, 150); // <= this times out
});
});
- 如果您的 所有 测试需要特定超时,请在全局级别设置它
- 如果您需要为
describe
中的 所有内容 设置特定超时,请在describe
中设置它
- 如果您需要 one
before
、it
等的特定超时,请在该函数中设置它