You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RedwoodJS中如何正确设置Jest的testTimeout配置?

在RedwoodJS API中设置Jest testTimeout的正确方法

全局超时设置(推荐)

RedwoodJS的测试配置基于官方预设,直接在api/jest.config.js中添加testTimeout会触发未知选项警告,因为配置需要通过Redwood提供的createJestConfig函数生成。正确写法如下:

// api/jest.config.js
const { createJestConfig } = require('@redwoodjs/testing/config')

module.exports = createJestConfig({
  rootDir: __dirname,
  testTimeout: 10000, // 全局设置10秒超时
})

如果需要覆盖根目录全局测试的超时,修改根目录jest.config.js时同样遵循这个结构:

// jest.config.js
const { createJestConfig } = require('@redwoodjs/testing/config')

module.exports = createJestConfig({
  testTimeout: 10000,
})

命令行临时设置

通过Redwood CLI传递Jest参数时,需确保参数正确转发到Jest进程,正确命令格式:

# 仅针对API侧测试设置超时
yarn rw test api -- --testTimeout 10000

# 针对所有测试设置超时
yarn rw test -- --testTimeout 10000

注意--是分隔Redwood CLI参数和Jest参数的关键,参数值用空格而非等号更稳妥(部分Jest版本对等号支持有差异)。

单个测试/场景的局部超时

如果仅需给特定测试或数据库场景设置超时,可直接在测试用例或scenario函数中指定:

  1. 单个测试用例:
test('获取复杂数据接口', async () => {
  // 测试逻辑
}, 10000) // 最后一个参数为超时时间
  1. Redwood Scenario场景:
scenario('创建带关联数据的记录', async ({ db }) => {
  // 场景逻辑
}, { timeout: 10000 }) // 最后一个参数传入配置对象设置超时

为什么之前的方法无效?

  • 直接在api/jest.config.js中添加testTimeout未通过createJestConfig函数生成,Redwood的预设会忽略未被识别的顶层配置项。
  • 根目录jest.config.js如果未使用createJestConfig,其配置会被Redwood的预设覆盖,无法生效到API侧测试。

内容的提问来源于stack exchange,提问作者Thomas G Henry LLC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:43:14