Angular + Jest单元测试报错:找不到模块src/environments/environment
解决Jest无法找到
src/environments/environment模块的问题 1. 修正Jest配置中的路径错误
你的jest.config.ts里setupFiles的路径存在拼写错误:原服务导入的是src/environments/environment(复数environments),但配置里写的是src/environment/environment(单数environment),这是直接触发模块找不到错误的原因。
修改jest.config.ts的setupFiles配置:
module.exports = { preset: 'jest-preset-angular', setupFiles: ['<rootDir>/src/environments/environment'], // 修正为复数environments setupFilesAfterEnv: ['<rootDir>/setup-jest.ts'], };
2. 确保TS配置正确识别路径
检查tsconfig.spec.json中的baseUrl和paths配置,确保src目录被设置为根路径,让TypeScript能正确解析src/开头的导入路径:
{ "extends": "./tsconfig.json", "compilerOptions": { "baseUrl": "./", "paths": { "src/*": ["src/*"] } }, "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] }
3. 添加Jest模块映射(可选)
如果路径解析仍有问题,可以在jest.config.ts中配置moduleNameMapper,强制映射该模块路径:
module.exports = { preset: 'jest-preset-angular', setupFiles: ['<rootDir>/src/environments/environment'], setupFilesAfterEnv: ['<rootDir>/setup-jest.ts'], moduleNameMapper: { '^src/environments/environment$': '<rootDir>/src/environments/environment.ts' } };
4. 确认测试环境文件存在
Angular项目通常包含environment.ts(开发环境)、environment.prod.ts(生产环境),请确保src/environments/environment.ts文件存在;如果测试需要单独配置,可在angular.json的测试配置中指定测试用环境文件:
"test": { "builder": "@angular-devkit/build-angular:jest", "options": { "tsConfig": "tsconfig.spec.json", "polyfills": ["zone.js", "zone.js/testing"], "environment": "src/environments/environment.ts" } }
完成以上步骤后重新运行Jest测试,模块找不到的错误即可解决。
内容的提问来源于stack exchange,提问作者Filip
相关产品推荐
相关产品推荐

