Ich laufe durch das Angular2 Test-Tutorial. Ich bin ziemlich neu bei Jasmine/Karma, also könnte das etwas Grundlegendes sein. Ich habe bemerkt, dass, wenn ich die „NPM-Test“ ausgeführt haben, dass, wenn ich eine Änderung vornehmen, die Test-Runner neu zu laden versucht, bekommt aber einen Fehler:Angular2 Karma Test Runner nicht nachladen
ERROR in C:/dev/unittest1/src/app/banner-inline/banner-inline.component.spec.ts (12,11): Cannot find name 'HTMLElement'.)
Hier ist die Spezifikation Code (ziemlich genau genommen aus here):
importieren {ComponentFixture, TestBed, ComponentFixtureAutoDetect} aus '@ angular/core/testing'; importieren {Von} aus '@ Angular/Plattform-Browser'; Importieren Sie {DebugElement} von '@ angular/core';
import { BannerInlineComponent } from './banner-inline.component';
describe('BannerInlineComponent (inline template)',() => {
let comp: BannerInlineComponent;
let fixture: ComponentFixture<BannerInlineComponent>;
let de: DebugElement;
let el: HTMLElement;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [BannerInlineComponent], // declare the test component
providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }]
});
fixture = TestBed.createComponent(BannerInlineComponent);
comp = fixture.componentInstance; // BannerInlineComponent test instance
// query for the title <h1> by CSS element selector
de = fixture.debugElement.query(By.css('h1'));
el = de.nativeElement;
});
it('should display original title',() => {
expect(el.textContent).toContain(comp.title);
});
it('should still see original title after comp.title change',() => {
const oldTitle = comp.title;
comp.title = 'Test Title';
fixture.detectChanges();
// Displayed title is old because Angular didn't hear the change :(
expect(el.textContent).toContain(oldTitle);
});
it('should display updated title after detectChanges',() => {
comp.title = 'Test Title';
fixture.detectChanges(); // detect changes explicitly
expect(el.textContent).toContain(comp.title);
});
});
Wenn ich den Testläufer stoppe und neu starte, funktioniert alles gut. Warum bekomme ich diesen Fehler und wie kann ich das verhindern?
Können Sie bitte die Spec-Datei schreiben, wird der Fehler es sich von selbst gibt an, dass es zu Flossen können isnot Das erforderliche Attribut in der Spezifikationsdatei, bekannt als HTML-Element, das auf der Grundlage bestimmter Auslöser benötigt wird, muss die Spezifikationsdatei anzeigen. –
Ich habe den Spezifikationscode hinzugefügt. Denken Sie daran, dass es kein Problem ist, dies mit einem Neubeginn des "npm-Tests" zu finden. –