I had a similar issue. It turned out that ng generate component
(using CLI version 7.1.4) adds a declaration for the child component to the AppModule, but not to the TestBed module that emulates it.
The "Tour of Heroes" sample app contains a HeroesComponent
with selector app-heroes
. The app ran fine when served, but ng test
produced this error message: 'app-heroes' is not a known element
. Adding the HeroesComponent
manually to the declarations in configureTestingModule
(in app.component.spec.ts
) eliminates this error.
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent,
HeroesComponent
],
}).compileComponents();
}));
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
}