2017-01-27 1 views
0

Я работаю с угловыми 2 и я получаю это сообщение, когда я запустить тест с ng test --build=false --watch=false:нг теста «<component> не известный элемент»

'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() {} 

} 

Может кто-то помочь мне понять, как это исправить?

ответ

0

Как указано в другом месте, вы должны опубликовать свой файл спецификации.

Я нашел способ решить проблему, очень похожую на нее, используя модули. Создайте новый модуль в 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 { } 

Затем, включают в себя модуль подачи в файле спецификации:

import {FeedModule} from 'path/to/feed.module'; 
... 
TestBed.configureTestingModule({ 
    ... 
    imports: [FeedModule, ...] 
    ... 
}) 
Смежные вопросы