2017-02-13 1 views
5

In Schreiben von Tests für meine Angular 2 app, Ich laufe in dieser Fehler wieder: die Wähler die wir verwenden:"CUSTOM_ELEMENTS_SCHEMA" Fehler in Testing Angular 2 App

„): AppComponent @ 12: 35 "tab-view" ist kein bekanntes Element: 1. Wenn "my-tab" eine eckige Komponente ist, überprüfen Sie, ob sie Teil dieses Moduls ist. 2. Wenn "my-tab" eine Webkomponente ist, fügen Sie sie hinzu "CUSTOM_ELEMENTS_SCHEMA" auf die '@ NgModule.schemas' dieser Komponente diese Meldung zu unterdrücken (“ [ERROR ->].

Ich habe CUSTOM_ELEMENTS_SCHEMA zu meinem Root-Modul hinzugefügt, sowie alle anderen Module, aber ich bekomme immer noch die Fehler. Was muss ich noch tun? Muss dies in allen Modulen oder nur in der Wurzel sein? Muss ich noch etwas hinzufügen?

+0

In allen Modulen, in denen Sie eine Komponente mit einem Selektor, der ein "-" enthält. –

+0

Ja, wie ich bereits erwähnt habe, habe ich das schon gemacht. Ich habe dies zu allen meinen Modulen hinzugefügt. Immer noch die Fehler bekommen. – Muirik

+0

Sie haben die Schemata [CUSTOM_ELEMENTS_SCHEMA] zu Ihrem TestBed.configureTestingModule hinzugefügt? –

Antwort

12

Also, was ich tun musste, um dies zum Laufen zu bringen, wurde auch die Schemas im TestBed.configureTestingModule gesetzt - das ist keine separate Moduldatei, sondern ein Teil der Datei app.component.spec.ts. Danke an @camaron für den Tipp. Ich denke, dass die Dokumente in diesem Punkt klarer sein könnten.

Wie auch immer, das habe ich hinzugefügt, um es zum Laufen zu bringen. Hier sind die öffnenden Inhalte meiner app.component.spec.ts Datei.

import { TestBed, async } from '@angular/core/testing'; 
import { AppComponent } from './../app.component'; 
import { RouterTestingModule } from '@angular/router/testing'; 
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; 

describe('AppComponent',() => { 
    beforeEach(() => { 
    TestBed.configureTestingModule({ 
     schemas: [ CUSTOM_ELEMENTS_SCHEMA ], 
     declarations: [AppComponent], 
     imports: [RouterTestingModule] 
    }); 
    TestBed.compileComponents(); 
    }); 
+0

Danke, das ist genau das, was ich gesucht habe! –

+0

danke (y) für mich arbeiten –

0

Es funktioniert für mich auf diese Weise, in Ihrem spec.ts-Datei müssen Sie Ihre Komponenten import und muss es declarations hinzuzufügen. In meinem Fall ist es in about.component.spec.ts