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

如何解决Jest测试中TypeError: environment.setup非函数错误?

解决Jest运行时TypeError: environment.setup is not a function错误

你遇到的这个问题,本质是react-scripts内置的Jest和你手动安装的Jest版本不兼容导致的环境配置冲突——react-scripts 1.0.17本身已经集成了适配好的Jest版本,你额外安装的Jest@22.0.4和它的内置配置不匹配,就抛出了environment.setup is not a function的错误。

下面给你两种可行的解决思路:

方案一:使用react-scripts自带的Jest(推荐)

这是最简单也最稳妥的方式,因为Create React App的核心就是帮你封装好所有构建、测试的配置,不需要手动安装Jest:

  • 打开你的package.json,把scripts里的test字段改回默认值:
    "test": "react-scripts test"
    
  • 删除devDependencies里的jest依赖项;
  • 删除项目根目录下的node_modules文件夹和package-lock.json(或yarn.lock);
  • 重新执行npm install安装依赖;
  • 运行npm test,此时应该能正常执行你的sum.test.js测试用例了。

方案二:手动同步Jest与react-scripts的版本(适合需要自定义Jest配置的场景)

如果你确实需要手动控制Jest版本,得保证它和react-scripts的版本兼容:

  • 查看你当前react-scripts版本对应的Jest版本:react-scripts 1.0.17对应的Jest版本是~21.0.0,你安装的22.0.4版本太高了;
  • 修改devDependencies里的Jest版本为"jest": "^21.0.0";
  • 同样删除node_modules和锁文件,重新执行npm install;
  • 保持test脚本为"jest",再运行测试即可。

额外提醒:如果之后需要更灵活的Jest配置,建议考虑升级react-scripts到更高版本(比如v5.x),它对Jest的兼容性更好,也支持自定义jest.config.js文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:45:47