TypeError:Jest:一个转换必须导出一个`process`函数
最近将我的应用程序升级到 Angular 11。Jest 已被设置为默认测试框架。运行 npm test 会导致以下错误:
? Test suite failed to run
TypeError: Jest: a transform must export a `process` function.
20 | @Component({
21 | selector: 'app-bx-input-textbox',
> 22 | template: require('./bx-input-textbox.component.html'),
| ^
23 | styles: [String(require('./bx-input-textbox.component.scss'))],
24 | providers: [
25 | {
at ScriptTransformer._getTransformer (node_modules/@jest/transform/build/ScriptTransformer.js:357:15)
at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:419:28)
at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:523:40)
at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
at src/app/core/components/bx-input-textbox/bx-input-textbox.component.ts:22:15
at Object.<anonymous> (src/app/core/components/bx-input-textbox/bx-input-textbox.component.ts:38:1)
// jest.config.js
module.exports = {
testEnvironment: "jsdom",
transform: {
".+.(css|styl|less|sass|scss)$": "<rootDir>/node_modules/jest-css-modules-transform",
".(ts|js)$": ['ts-jest']
},
setupFilesAfterEnv: ['./jest.setup.js'],
globals: {
"ts-jest": {
tsConfig: {
// allow js in typescript
allowJs: true,
},
},
},
// If you need to test a specifc file just include it here
//testMatch: ['**/repository.jobs.spec.ts'],
testMatch: []
};
包版本 "@angular-builders/jest": "12.1.0", "@types/jest": "24.9.1", "ts-jest": "26.0.0", "jest": "24.9.0 ”,
我尝试了 jest.config.js 文件的不同配置,但无法解决此错误。任何解决此问题的指针都会有所帮助。
回答
将 jest 和 ts-jest 升级到 v27 以解决此问题