首页 > 解决方案 > ng 测试角度 5 失败

问题描述

我正在尝试使用 Karma 在我的 Angular 5 应用程序上执行测试,但是对于 10 个组件,我基本上有相同的错误:AccountsComponent 应该创建

失败:模板解析错误:'app-wizard-cmp-edit' 不是已知元素: 1. 如果 'app-wizard-cmp-edit' 是 Angular 组件,则验证它是否是该模块的一部分。2. 如果 'app-wizard-cmp-edit' 是一个 Web 组件,则将 'CUSTOM_ELEMENTS_SCHEMA' 添加到该组件的 '@NgModule.schemas' 以禁止显示此消息。(" [ERROR ->] "): ng:///DynamicTestModule/AccountsComponent.html@51:8

当我像这样在线搜索解决方案时如何将组件导入Angular 2中的另一个根组件时, 它并没有解决我的问题上面是我的帐户模块中的导入:

    @NgModule({
    imports: [
        CommonModule,
        RouterModule.forChild(AccountsRoutes),
        FormsModule,
        ReactiveFormsModule,
        NouisliderModule,
        TagInputModule,
        MaterialModule, SharedModule
    ],
    declarations: [AccountsComponent, WizardComponent],
    exports: [WizardComponent]
    , providers: [AccountslistService],

})
export class AccountsModule {
}

这是 ngModule :

@NgModule({
    imports: [
        CommonModule,
        BrowserAnimationsModule,
        FormsModule,
        HttpModule,
        HttpClientModule,
        RouterModule.forRoot(AppRoutes),
        MaterialModule,
        MatNativeDateModule,
        SidebarModule,
        NavbarModule,
        FooterModule,
        FixedpluginModule,
    ],
    declarations: [
        AppComponent,
        AdminLayoutComponent,
        AuthLayoutComponent,
        AccountsComponent

    ],
    bootstrap: [AppComponent]
    , providers: [AuthGuard, AuthenticationService, ChatAlertsService, Configuration]
})
export class AppModule {
}

我真的被卡住了,因为我不知道为什么测试失败但是当我构建它时应用程序运行良好

标签: angularkarma-jasmine

解决方案


您可以添加schemas: [NO_ERRORS_SCHEMA] 到您的测试组件配置中,这将简单地忽略与child component标签相关的错误。

TestBed.configureTestingModule({
      declarations: [ MyComponent],
      schemas: [NO_ERRORS_SCHEMA]
      // other stuff
})

但是当你使用它时要小心,因为它可能会隐藏任何其他错误以及导致调试失败的测试用例的困难。


推荐阅读