angular - 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 {
}
我真的被卡住了,因为我不知道为什么测试失败但是当我构建它时应用程序运行良好
解决方案
您可以添加schemas: [NO_ERRORS_SCHEMA]
到您的测试组件配置中,这将简单地忽略与child component
标签相关的错误。
TestBed.configureTestingModule({
declarations: [ MyComponent],
schemas: [NO_ERRORS_SCHEMA]
// other stuff
})
但是当你使用它时要小心,因为它可能会隐藏任何其他错误以及导致调试失败的测试用例的困难。
推荐阅读
- xamarin - 删除项目后 ListView 不更新其内容
- python - sessionid 缺失且 session_key=None
- javascript - 节点js示例中的工作流?
- python-3.x - “NoneType”对象没有属性“render_context”
- java - 如何使用 youtube API 实现 youtube 搜索
- python - optimizer.apply_gradients 不更新 TF 2.0 中的权重
- python - timeit 结果中运行次数和循环次数之间的差异
- c# - 关于序列化/反序列化的几个问题
- mysql - 在 Node Mysql (Discord.js) 中获取未定义的结果
- css - 隐藏前面图像之外的多余部分