我正在将项目中的角版本升级到14。但是当我试图运行单元测试时,我得到了所有这些测试的相同错误:
● Test suite failed to run
Cannot find module '@angular/core/testing' from 'node_modules/jest-preset-angular/build/config/setup-jest.js'
Require stack:
node_modules/jest-preset-angular/build/config/setup-jest.js
node_modules/jest-preset-angular/setup-jest.js
setupJest.ts这是当前的jest配置:
jest.config.js
/** @type {import('@jest/types').Config.InitialOptions} */
const config = {
preset: 'jest-preset-angular',
setupFilesAfterEnv: ['<rootDir>/setupJest.ts'],
testPathIgnorePatterns: [
'<rootDir>/node_modules/',
'<rootDir>/dist/'
],
moduleNameMapper: {
"lodash-es": "lodash",
},
globals: {
'ts-jest': {
tsconfig: '<rootDir>/tsconfig.spec.json',
stringifyContentPathRegex: '\\.html$',
diagnostics: {
ignoreCodes: [151001]
}
}
},
restoreMocks: true,
clearMocks: true
}
module.exports = config;setupJest.ts
import 'jest-preset-angular/setup-jest';发布于 2022-07-14 01:56:43
因此,我在网上搜索了相当一段时间,然后我发现了这个解决方案,希望它也适用于你。
在jest.config.js文件中,如果您正在使用moduleDirectories配置,则将其从moduleDirectories:‘node_node’、./‘改为moduleDirectories:’node_node‘、__dirname
发布于 2022-08-08 21:30:29
我无法用fadingbear提供的解决方案来解决这个问题,但它激励我改变。/“to”。因此,在将jest、jest预设的角度和角度更新到最新版本之后,我用moduleDirectories来修正这个问题:'node_modules','<rootDir>',在我的jest.config.js中,而不是‘node_jest.config.js’,‘/’。
我还必须添加transformIgnorePatterns条目,以消除任何意外的令牌错误,如jest-预设角文档:https://thymikee.github.io/jest-preset-angular/docs/guides/troubleshooting中的故障排除部分所描述的。
这是我现在的jest.config.js
// jest.config.js
module.exports = {
preset: 'jest-preset-angular',
setupFilesAfterEnv: ['<rootDir>/setup-jest.ts'],
globalSetup: 'jest-preset-angular/global-setup',
moduleDirectories: ['node_modules', '<rootDir>'],
transformIgnorePatterns: ['node_modules/(?!@angular|rxjs)'],
collectCoverage: true,
coverageDirectory: '<rootDir>/coverage/',
};发布于 2022-07-15 13:07:52
当我有这种类型的错误时,我通常会在package.json中为Jest配置添加必需的路径:
"modulePaths": [
"<rootDir>",
"/path/to/required"
],但是,这种方法更适合于需要路径为(例如src/app/ )的情况。
对于node_modules,我通过将"transformIgnorePatterns": ["/node_modules/?!@angular"],添加到package.json Jest配置来解决这个问题。
另外,我建议您从根文件夹中点击npm install。以防万一:)
https://stackoverflow.com/questions/72937259
复制相似问题