jest.setTimeout 在 setupFiles 中不起作用

Moh*_*waj 5 javascript node.js jestjs

我正在使用 Jest 来测试我的 rest API。我的大多数 API 端点需要超过 5 秒才能返回,因此我需要增加 Jest 中指定的默认超时 5000 毫秒。

我有 2 个测试文件,假设: foo.test.js bar.test.js

现在,我可以通过以下两种方式摆脱超时错误:

  1. 将超时值设置为大于 5000,作为testit方法的第三个参数。这工作正常,但我需要更新所有现有的测试用例。
  2. jest.setTimeout(20000);在我的每个测试文件的顶部添加。这也很好用。但是,它仍然需要我更新所有现有的测试文件。

我发现我可以改为jest.setTimeout(20000);在单独的文件中指定,并setupFiles在 package.json 中的 jest 配置选项中指向那个。我这样做了,但是超过 5000 毫秒的超时错误又开始出现了。我的 setupFile 被正确加载,我通过添加一些console.log语句来检查它。但它似乎jest.setTimeout(20000)对测试用例没有任何影响。

Bri*_*ams 7

文档setupFilesAfterEnv

setupFiles 在环境中安装测试框架之前执行

(该信息也应该添加到setupFiles文档部分。)


setupFiles安装测试框架之前运行。我有点惊讶jest.setTimeout在安装文件中定义。在任何情况下,jest.setTimeoutsetupFiles.

相反,使用setupFilesAfterEnvwhich 运行

在环境中安装测试框架后立即


请注意,它setupFilesAfterEnv在 version24.0.0引入的

如果您使用的是较早版本,请Jest改用较旧版本setupTestFrameworkScriptFile