为所有测试配置一次开玩笑超时

Joh*_*ohn 11 jestjs ts-jest

根据文档,可以使用jest-object将默认异步超时从 5000 毫秒增加

更具体地说,通过使用jestsettimeouttimeout

我面临的问题是我正在针对一个非常慢的 API 运行一系列测试,响应时间为 5-15 秒,在每个测试的顶部配置这个 jest 对象非常烦人。

是否可以在运行所有测试文件之前声明一次这些设置?

Gen*_*wen 42

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

  "jest": {
    "testTimeout": 15000,
  }
Run Code Online (Sandbox Code Playgroud)


ano*_*932 27

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

const SECONDS = 1000;

module.exports = {
  testTimeout: 60 * SECONDS
}
Run Code Online (Sandbox Code Playgroud)


Joh*_*ohn 12

好的,把位放在一起:

当您搜索时,Jest 搜索框实际上不会返回任何内容:setupFilesAfterEnv

和文档谈论: setupTestFrameworkScriptFile (它也不会在搜索中返回任何内容:/)

无论如何,这些文档让您摸不着头脑,但这有效:

jest.config.js:

module.exports = {
  setupFilesAfterEnv: ['./setup.js'],
Run Code Online (Sandbox Code Playgroud)

设置.js:

jest.setTimeout(10000); // in milliseconds
Run Code Online (Sandbox Code Playgroud)

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

  • 如果有人偶然发现这篇文章。开玩笑的人添加了一个名为 [`testTimeout`](https://jestjs.io/docs/en/configuration#testtimeout-number) 的新配置选项,它会执行相同的操作。:) (9认同)

Art*_* M. 7

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

jest.setTimeout(15000); // in milliseconds
Run Code Online (Sandbox Code Playgroud)