ng test'<component>不是已知元素'

时间:2017-01-27 17:59:09

标签: components element

我正在使用角度2,当我使用ng test --build=false --watch=false进行测试时,我收到此消息:

'app-feed' is not a known element:
1. If 'app-feed' is an Angular component, then verify that it is part of this mod
2. If 'app-feed' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@Ng
[ERROR ->]<app-feed></app-feed>**

app.component.html文件内容:

<app-menu></app-menu>
<app-feed></app-feed>

app.component.ts文件内容:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app works!';
  wonderfulProperty = 'Hola';
}

app.module.ts文件内容:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { AppComponent } from './app.component';
import { MenuComponent } from './menu/menu.component';
import { FeedComponent } from './feed/feed.component';

@NgModule({
  declarations: [AppComponent,MenuComponent,FeedComponent],
  imports: [BrowserModule, FormsModule,HttpModule],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

feed.component.ts文件内容:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-feed',
  templateUrl: './feed.component.html',
  styleUrls: ['./feed.component.css']
})
export class FeedComponent implements OnInit {

  constructor() { }

  ngOnInit() {}

}

有人可以帮我弄清楚如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如其他地方所述,您应该发布您的spec文件。

我找到了一种通过使用模块解决与此非常类似的问题的方法。在feed/feed.module.ts创建一个新模块,然后在其中导入FeedComponent:

import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FeedComponent} from './feed.component';

@ngModule({
    imports: [CommonModule],
    declarations: [FeedComponent],
    exports: [FeedComponent]
})
export class FeedModule {}

将您的app.module.ts更改为:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { FeedModule } from './feed/feed.module';

import { AppComponent } from './app.component';
import { MenuComponent } from './menu/menu.component';

@NgModule({
  declarations: [AppComponent,MenuComponent],
  imports: [BrowserModule, FormsModule, HttpModule, FeedModule],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

然后,在spec文件中包含feed模块:

import {FeedModule} from 'path/to/feed.module';
...
TestBed.configureTestingModule({
    ...
    imports: [FeedModule, ...]
    ...
})