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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:35:21