我在一个测试用例中提交了一个网络请求,但这有时需要超过2秒(默认超时)。
如何增加单个测试用例的超时时间?
我在一个测试用例中提交了一个网络请求,但这有时需要超过2秒(默认超时)。
如何增加单个测试用例的超时时间?
当前回答
如果你在NodeJS中使用,那么你可以在package.json中设置timeout
"test": "mocha --timeout 10000"
然后你可以像这样使用NPM运行:
npm test
其他回答
这对我很管用!找不到任何东西让它工作之前()
describe("When in a long running test", () => {
it("Should not time out with 2000ms", async () => {
let service = new SomeService();
let result = await service.callToLongRunningProcess();
expect(result).to.be.true;
}).timeout(10000); // Custom Timeout
});
从命令行:
mocha -t 100000 test.js
(因为我今天碰到了这个)
使用ES2015胖箭头语法时要小心:
这将失败:
it('accesses the network', done => {
this.timeout(500); // will not work
// *this* binding refers to parent function scope in fat arrow functions!
// i.e. the *this* object of the describe function
done();
});
编辑:为什么它失败了:
正如@atoth在评论中提到的,胖箭头函数没有自己的这个绑定。因此,it函数不可能绑定回调的this并提供超时函数。
底线:对于需要增加超时的函数,不要使用箭头函数。
您还可以考虑采用不同的方法,用存根或模拟对象替换对网络资源的调用。使用Sinon,您可以将应用程序与网络服务分离,集中精力进行开发。
如果你在NodeJS中使用,那么你可以在package.json中设置timeout
"test": "mocha --timeout 10000"
然后你可以像这样使用NPM运行:
npm test