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

React Native配置Detox E2E测试时jest-circus报路径导出错误

报错根因

该报错由依赖版本不兼容导致:

  • Detox 18.x 仅支持 jest-circus 26 及更低版本,jest-circus 27 重构了内部文件导出规则,移除了 Detox 18 代码中引用的 ./build/types 路径,触发导出不存在的错误。
  • 项目现有 jest 版本为 24.9.0,和 jest-circus 27.x 本身大版本不一致,也会存在潜在兼容问题,原有单元测试未报错是因为未调用 jest-circus 相关逻辑。
解决方案

可根据项目升级接受度二选一:

方案1:降级 jest-circus 到兼容版本(改动最小,不影响现有项目逻辑)

  • 卸载当前高版本 jest-circus:
    npm uninstall jest-circus --save-dev
    若使用 yarn 则执行:
    yarn remove jest-circus --dev
  • 安装适配 Detox 18.x 的版本:
    npm install jest-circus@26.x --save-dev
    若使用 yarn 则执行:
    yarn add jest-circus@26.x --dev
  • 清除缓存后重试:删除 node_modules 与包锁文件,重新安装依赖后执行 detox clean-framework-cache && detox build --configuration ios,再运行测试即可。

方案2:升级 Detox 到高版本(适配新特性)

  • 将 Detox 升级到 20.x 及以上版本,该版本范围已适配 jest-circus 27+ 的导出规则。
  • 升级完成后根据对应版本的配置要求调整 Detox 相关配置,同时将 jest 版本同步升级到和 jest-circus 匹配的大版本,避免其他兼容问题。
额外排查项
  • 全局 jest 配置冲突排查:若项目根目录存在 jest.config.js 等全局 jest 配置,需添加配置 testPathIgnorePatterns: ["<rootDir>/e2e/"],避免单元测试的全局配置覆盖 E2E 测试的独立配置。
  • 依赖版本对齐:jest 和 jest-circus 需保持大版本一致,若担心升级 jest 影响现有单元测试,可通过包管理工具的多版本依赖功能为 E2E 测试单独安装局部 jest 依赖。

内容的提问来源于stack exchange,提问作者Rodrigo Veiga

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:00:02