客户端/服务端同仓项目运行TypeScript测试时Jest报错求助
解决方案
修正后jest.config.js配置
module.exports = { roots: ["<rootDir>/server"], preset: "ts-jest", testEnvironment: "node", // 核心修复项:服务端测试改用Node.js原生环境 testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$', // 匹配.ts/.tsx后缀的测试用例 transform: { "^.+\\.(ts|tsx)$": "ts-jest", } };
操作步骤
- 替换根目录下的
jest.config.js为上述配置,删除原有testMatch: null和testRegex: []的无效配置,这两项配置会导致Jest无法正常识别测试文件。你当前的调试输出显示测试环境默认加载了jsdom,这是为前端浏览器场景设计的模拟环境,和服务端Node.js环境不兼容,是触发HasteMap构造报错的核心原因。 - 清理Jest缓存,执行命令
npx jest --clearCache,避免旧的缓存配置影响执行。 - 如果修改配置后仍然报错,删除项目根目录的
node_modules、package-lock.json(或yarn.lock),重新执行npm install(或yarn install)安装依赖,排除CRA客户端自带的Jest依赖和根目录安装的Jest 26.x版本产生的冲突。 - 可选优化:如果后续需要同时运行前后端测试,建议采用Jest多项目配置,根目录
jest.config.js指定projects分别指向client和server目录的独立Jest配置,避免两端配置互相干扰。
内容的提问来源于stack exchange,提问作者Jesavino
相关产品推荐
相关产品推荐

