为所有测试配置一次jest超时

os8fio9y  于 2023-05-04  发布在  Jest
关注(0)|答案(4)|浏览(220)

根据文档,可以使用jest-object将默认异步超时从5000 ms增加
更具体地说,通过使用jestsettimeouttimeout
我面临的问题是,我正在对一个非常慢的API运行一系列测试,5-15秒的响应时间,在每个测试的顶部配置这个jest对象是痛苦的烦人。
是否可以在运行所有测试文件之前声明一次这些设置?

wrrgggsh

wrrgggsh1#

Jest提供了一个testTimeout配置选项,您可以将其添加到package.json

"jest": {
    "testTimeout": 15000,
  }
mbyulnm0

mbyulnm02#

好了,把这些片段放在一起:

  • 选项“setupTestFrameworkScriptFile”被配置“setupFilesAfterEnv”替换,后者支持多个路径
  • https://jestjs.io/docs/en/jest-object#jestsettimeouttimeout
  • https://jestjs.io/docs/en/jest-object#jestdisableautomock

当您搜索以下内容时,Jest搜索框实际上不会返回任何内容:setupFilesAfter环境
Docs谈论:setupTestFrameworkScriptFile(在搜索时也不返回任何内容:/)
无论如何,文档让你挠头,但这是有效的:
jest.config.js:

module.exports = {
  setupFilesAfterEnv: ['./setup.js'],

setup.js:

jest.setTimeout(10000); // in milliseconds

开玩笑的人应该更容易找到这些信息。

dldeef67

dldeef673#

使用testTimeout。在您的jest.config.js(或类似)中,添加以下内容:

const SECONDS = 1000;

module.exports = {
  testTimeout: 60 * SECONDS
}
eyh26e7m

eyh26e7m4#

如果你正在使用react并使用create-react-app初始化你的应用,那么在你的src/目录下你应该有一个名为setupTests.js的文件。在这里,只需在@testing-libary的import语句后插入这一行,就可以为所有测试设置全局超时

jest.setTimeout(15000); // in milliseconds

相关问题