我正在尝试将版本 angular 8 更新为 12。在 Angular 8 中,我使用带有 [jest-preset-angular.] 1版本 7.0.0 的 jest 框架现在为了与 angular 12 兼容,我更新了 jest-preset-角度版本到 11.0.1。并更新 jest 配置设置。现在,大多数测试都失败了。
jest.config.js
module.exports = {
jest: 'jest-preset-angular',
rootDir: 'src',
setupfilesAfterEnv: './setupJest.ts',
testEnvironment: 'jsDom',
globals: {
'ts-jest': {
tsconfig": "<rootDir>/tsconfig.spec.json",
"stringifyContentPathRegex": "\\.html$",
}
},
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
transform: {
'^.+\\.(ts|js|mjs|html|svg)$': 'jest-preset-angular',
},
}
测试文件
beforeEach(waitForAsync(() => {
Testbed.configureTestingModule({
declration: [TestComponent],
imports: [SharedComponent]
providers: []
}.compileComponents()
}
问题:
Unhandled promise rejection: failed to load app-header.component.html undefined
Unhandled promise rejection: failed to load app-header.component.scss undefined
但是项目中没有命名文件 app-header.component.html 或 app-header.component.scss。在 Sharedcomponent 中,我们使用了一个作为本地 npm 包制作的自定义库。并将它们全部导入 SharedComponent。
in HTML, using custom library like this.
<header app-header (menuclick)="click($event)"/>
sharedModule.ts 文件
import { AppHeaderModule } from '@customModule';
@NgModule({
imports: [AppHeaderModule, ...],
exports: [ AppHeaderModule, ...],
})
exports class sharedModule;
谁能告诉为什么会这样以及如何解决它?