消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

新手上路,请多包涵

我正在使用 Puppeteer 和 Jest 来运行一些前端测试。

我的测试如下所示:

describe("Profile Tab Exists and Clickable: /settings/user", () => {
    test(`Assert that you can click the profile tab`, async () => {
      await page.waitForSelector(PROFILE.TAB);
      await page.click(PROFILE.TAB);
    }, 30000);
});

有时,当我运行测试时,一切都按预期工作。其他时候,我得到一个错误:

超时 - 在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调。

     at node_modules/jest-jasmine2/build/queue_runner.js:68:21 <br/>
     at Timeout.callback [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:633:19)

这很奇怪,因为:

  1. 我指定超时为 30000

  2. 我是否收到此错误似乎很随机

为什么会这样?

原文由 Asool 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 995
1 个回答

您在此处指定的超时时间需要短于默认超时时间。

默认超时为 5000 框架默认为 jasminejest 的情况下。您可以通过添加在测试中指定超时

jest.setTimeout(30000);

但这将特定于测试。或者您可以为框架设置配置文件。

配置 Jest

 // jest.config.js
module.exports = {
  // setupTestFrameworkScriptFile has been deprecated in
  // favor of setupFilesAfterEnv in jest 24
  setupFilesAfterEnv: ['./jest.setup.js']
}

// jest.setup.js
jest.setTimeout(30000)

另请参阅这些线程:

每次测试设置超时 #5055

_使 jasmine.DEFAULT_TIMEOUT_INTERVAL 可配置 #652_

PS:拼写错误 setupFilesAfterEnv (即 setupFileAfterEnv )也会抛出同样的错误。

原文由 Tarun Lalwani 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题