我在一个测试用例中提交了一个网络请求,但这有时需要超过2秒(默认超时)。

如何增加单个测试用例的超时时间?


当前回答

这对我很管用!找不到任何东西让它工作之前()

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

这对我很管用!找不到任何东西让它工作之前()

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 
});

如果你想使用es6箭头函数,你可以在你的it定义的末尾添加一个.timeout(ms):

it('should not timeout', (done) => {
    doLongThing().then(() => {
        done();
    });
}).timeout(5000);

至少在Typescript中是这样的。

您还可以考虑采用不同的方法,用存根或模拟对象替换对网络资源的调用。使用Sinon,您可以将应用程序与网络服务分离,集中精力进行开发。

如果你在NodeJS中使用,那么你可以在package.json中设置timeout

"test": "mocha --timeout 10000"

然后你可以像这样使用NPM运行:

npm test