执行测试套件报错:找不到expect/build/jasmineUtils模块
解决Jest测试套件报错:Cannot find module 'expect/build/jasmineUtils'
错误信息
Test suite failed to run Cannot find module 'expect/build/jasmineUtils' from 'node_modules/jest-extended/dist/utils/index.js' Require stack: node_modules/jest-extended/dist/utils/index.js node_modules/jest-extended/dist/matchers/toBeArrayOfSize/index.js node_modules/jest-extended/dist/matchers/index.js node_modules/jest-extended/dist/index.js at Resolver._throwModNotFoundError (node_modules/jest-resolve/build/resolver.js:425:11) at Object.<anonymous> (node_modules/jest-extended/dist/utils/index.js:8:21) at Object.<anonymous> (node_modules/jest-extended/dist/matchers/toBeArrayOfSize/index.js:9:14) at Object.<anonymous> (node_modules/jest-extended/dist/matchers/index.js:17:15) at Object.<anonymous> (node_modules/jest-extended/dist/index.js:3:17)
问题原因
这个报错是jest-extended与当前安装的Jest版本不兼容导致的——新版本Jest中expect/build/jasmineUtils这个模块路径已被移除或调整,类似的版本冲突问题也在jest-marbles的相关场景中出现过,重新安装依赖但未解决是因为缓存或版本锁定的问题。
解决方法
锁定兼容的依赖版本
确保jest-extended版本与Jest匹配,若使用Jest 28及以上版本,直接安装最新稳定版的jest-extended:npm install jest-extended@latest --save-dev注意不要单独安装
expect包,依赖Jest自带的版本即可。清理依赖缓存并重装
依赖缓存可能导致版本不一致,执行以下命令彻底清理后重装:rm -rf node_modules package-lock.json yarn.lock npm cache clean --force npm install检查Jest配置正确性
确认jest.config.js中正确引入jest-extended:module.exports = { setupFilesAfterEnv: ['jest-extended/all'], // 其他Jest配置项... };
内容的提问来源于stack exchange,提问作者Juan Antonio
相关产品推荐
相关产品推荐

