如何解决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
相关产品推荐
相关产品推荐

