gpt4 book ai didi

javascript - jest.setTimeout 在 setupFiles 中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 00:35:07 24 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

来自docs对于 setupFilesAfterEnv:

setupFiles executes before the test framework is installed in the environment

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


setupFiles 在安装测试框架 之前运行。 jest.setTimeout 是在安装文件中定义的,这让我感到有些惊讶。在任何情况下,调用 jest.setTimeout 都不能直接从 setupFiles 中的文件中进行。

相反,使用运行的setupFilesAfterEnv

immediately after the test framework has been installed in the environment


注意 setupFilesAfterEnvintroduced in version 24.0.0 .

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

关于javascript - jest.setTimeout 在 setupFiles 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54782236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com