我有一个带有节点+角度库的NX工作区。当从NX版本13.x升级到14.x时,NX通过其自动迁移过程重新配置Jest。
当运行项目:测试生成器时,我的jest测试就像预期的那样工作。但是,当试图通过IDE (IntelliJ)直接运行单元测试时,我会得到以下错误:
Error: ● Validation Error:
Preset jest.preset.js not found.
Configuration Documentation:
https://jestjs.io/docs/configuration项目是使用项目级配置文件设置的,如下所示。
module.exports = {
coverageDirectory: '<path>',
displayName : '<name>',
globals : {
'ts-jest': {
stringifyContentPathRegex: '\\.(html|svg)$',
tsconfig : '<rootDir>/tsconfig.spec.json'
}
},
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
snapshotSerializers : [
'jest-preset-angular/build/serializers/no-ng-attributes',
'jest-preset-angular/build/serializers/ng-snapshot',
'jest-preset-angular/build/serializers/html-comment'
],
transform : {
'^.+.(ts|mjs|js|html)$': 'jest-preset-angular'
},
transformIgnorePatterns: ['node_modules/(?!.*.mjs$)'],
preset : '../../../../../jest.preset.ts'
};预设的文件退出,看起来如下所示:
const nxPreset = require('@nrwl/jest/preset');
module.exports = { ...nxPreset };我还有一个全局jest.config.ts文件。该文件确实有一个对jest.preset.js的引用,该引用在其范围内不存在。此外,不存在的是一个全局范围的test-setup.ts文件。如下所示:
const { getJestProjects } = require('@nrwl/jest');
module.exports = {
globals: {
'ts-jest': {
astTransformers: {
before: [
'jest-preset-angular/build/InlineFilesTransformer',
'jest-preset-angular/build/StripStylesTransformer'
]
},
stringifyContentPathRegex: '\\.(html|svg)$',
tsconfig: '<rootDir>/tsconfig.spec.json'
}
},
preset : 'jest.preset.js',
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
snapshotSerializers: [
'jest-preset-angular/build/serializers/no-ng-attributes',
'jest-preset-angular/build/serializers/ng-snapshot',
'jest-preset-angular/build/serializers/html-comment'
],
projects: [
...getJestProjects(),
//Lots of projects
]
};我认为迁移中有一些不正常的地方,但我不太了解jest的配置,不知道如何解构这些配置。全局配置文件中存在多个问题,但是当我消除全局配置文件时,我会得到许多其他错误(就像它试图在js中运行我的ts测试一样)。
任何关于我如何纠正这个问题的想法都将不胜感激。
发布于 2022-07-05 17:19:35
我能够通过调整测试配置中的“工作目录”来解决这个问题。

我得到了错误的Preset ../../jest.preset.ts not found,所以我在我的项目中找到了jest.preset.ts文件,并将我的配置的工作目录设置为“在该文件下面”两个文件夹。
例如。
我的测试文件在src/app/my-app/A/B/C
src
Preset ../../jest.preset.ts not found
src/app/my-app (所以测试运行程序将“升级”到src文件夹)

https://stackoverflow.com/questions/72081693
复制相似问题