Angular 14 和 Jest(无法运行测试)

Igi*_*ffa 6 jestjs angular

我正在将项目中的 Angular 版本升级到 14。但是当我尝试运行单元测试时,我得到了相同的错误:

\n
  \xe2\x97\x8f Test suite failed to run\n\n    Cannot find module '@angular/core/testing' from 'node_modules/jest-preset-angular/build/config/setup-jest.js'\n\n    Require stack:\n      node_modules/jest-preset-angular/build/config/setup-jest.js\n      node_modules/jest-preset-angular/setup-jest.js\n      setupJest.ts\n
Run Code Online (Sandbox Code Playgroud)\n

这是当前的笑话配置:

\n

笑话配置.js

\n
/** @type {import('@jest/types').Config.InitialOptions} */\nconst config = {\n  preset: 'jest-preset-angular',\n  setupFilesAfterEnv: ['<rootDir>/setupJest.ts'],\n  testPathIgnorePatterns: [\n    '<rootDir>/node_modules/',\n    '<rootDir>/dist/'\n  ],\n  moduleNameMapper: {\n    "lodash-es": "lodash",\n  },\n  globals: {\n    'ts-jest': {\n      tsconfig: '<rootDir>/tsconfig.spec.json',\n      stringifyContentPathRegex: '\\\\.html$',\n      diagnostics: {\n        ignoreCodes: [151001]\n      }\n    }\n  },\n  restoreMocks: true,\n  clearMocks: true\n}\n\nmodule.exports = config;\n
Run Code Online (Sandbox Code Playgroud)\n

setupJest.ts

\n
import 'jest-preset-angular/setup-jest';\n
Run Code Online (Sandbox Code Playgroud)\n

小智 3

所以我在网上搜索了很长一段时间,然后我发现了这个解决方案,希望它也适合你。

在 jest.config.js 文件中,如果您使用 moduleDirectories 配置,请将其从 moduleDirectories: ['node_modules', './'] 更改为 moduleDirectories: ['node_modules', __dirname]