Angular 2 + ng 测试:'X' 不是已知组件
Angular 2 + ng test: 'X' is not a known component
我使用 Angular 2.0 RTM 和 Angular CLI 1.0.0-beta 16 创建了一个新项目:
ng init
然后 运行:
ng generate component my-new-component
然后 运行:
ng test
得到这个:
'app-my-new-component' is not a known element:
1. If 'app-my-new-component' is an Angular component, then verify that it is part of this module.
2. If 'app-my-new-component' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schema' of this component to suppress this message. ("
</h1>
<p>The mean of life is {{answer}}</p>
[ERROR ->]<app-my-new-component></app-my-new-component>"): AppComponent@4:0
Error: Template parse errors:
at TemplateParser.parse (http://localhost:9877/_karma_webpack_/0.bundle.js:8669:19)
at RuntimeCompiler._compileTemplate (http://localhost:9877/_karma_webpack_/0.bundle.js:17854:51)
at http://localhost:9877/_karma_webpack_/0.bundle.js:17777:83
at Set.forEach (native)
at compile (http://localhost:9877/_karma_webpack_/0.bundle.js:17777:47)
at RuntimeCompiler._compileComponents (http://localhost:9877/_karma_webpack_/0.bundle.js:17779:13)
at RuntimeCompiler._compileModuleAndAllComponents (http://localhost:9877/_karma_webpack_/0.bundle.js:17696:37)
at RuntimeCompiler.compileModuleAndAllComponentsSync (http://localhost:9877/_karma_webpack_/0.bundle.js:17684:21)
at TestingCompilerImpl.compileModuleAndAllComponentsSync (http://localhost:9877/_karma_webpack_/0.bundle.js:24662:35)
at TestBed._initIfNeeded (webpack:///home/adam/monctonug/~/@angular/core/bundles/core-testing.umd.js:1059:0 <- src/test.ts:4568:40)
我试过重新排序组件,但没有帮助。解决这个问题的正确方法是什么?
我遇到了同样的问题,事实证明,对于测试,您还需要声明使用的组件:
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent,
MyNewComponent
],
});
我使用 Angular 2.0 RTM 和 Angular CLI 1.0.0-beta 16 创建了一个新项目:
ng init
然后 运行:
ng generate component my-new-component
然后 运行:
ng test
得到这个:
'app-my-new-component' is not a known element:
1. If 'app-my-new-component' is an Angular component, then verify that it is part of this module.
2. If 'app-my-new-component' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schema' of this component to suppress this message. ("
</h1>
<p>The mean of life is {{answer}}</p>
[ERROR ->]<app-my-new-component></app-my-new-component>"): AppComponent@4:0
Error: Template parse errors:
at TemplateParser.parse (http://localhost:9877/_karma_webpack_/0.bundle.js:8669:19)
at RuntimeCompiler._compileTemplate (http://localhost:9877/_karma_webpack_/0.bundle.js:17854:51)
at http://localhost:9877/_karma_webpack_/0.bundle.js:17777:83
at Set.forEach (native)
at compile (http://localhost:9877/_karma_webpack_/0.bundle.js:17777:47)
at RuntimeCompiler._compileComponents (http://localhost:9877/_karma_webpack_/0.bundle.js:17779:13)
at RuntimeCompiler._compileModuleAndAllComponents (http://localhost:9877/_karma_webpack_/0.bundle.js:17696:37)
at RuntimeCompiler.compileModuleAndAllComponentsSync (http://localhost:9877/_karma_webpack_/0.bundle.js:17684:21)
at TestingCompilerImpl.compileModuleAndAllComponentsSync (http://localhost:9877/_karma_webpack_/0.bundle.js:24662:35)
at TestBed._initIfNeeded (webpack:///home/adam/monctonug/~/@angular/core/bundles/core-testing.umd.js:1059:0 <- src/test.ts:4568:40)
我试过重新排序组件,但没有帮助。解决这个问题的正确方法是什么?
我遇到了同样的问题,事实证明,对于测试,您还需要声明使用的组件:
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent,
MyNewComponent
],
});