2017-03-29 6 views
0

私はAngular2テストチュートリアルを実行しています。私はJasmine/Karmaにはかなり新しいので、これは基本的なものかもしれません。ここでAngular2カルマテストランナーがリロードされない

ERROR in C:/dev/unittest1/src/app/banner-inline/banner-inline.component.spec.ts (12,11): Cannot find name 'HTMLElement'.)

はスペックコードです(ほとんどちょうどから撮影:私は変更を加えた場合、テストランナーがエラーをリロードしようとしますが、取得することを実行している「NPMテスト」を持ってたら気づきました'@ angular/core/testing'からのimport {ComponentFixture、TestBed、ComponentFixtureAutoDetect}; ):

import(By)から '@ angular/platform-b​​rowser'; '{angle/core'から{DebugElement}をインポートします。

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); 
    }); 
}); 

テストランナーを停止して再起動すると、すべて正常に動作します。なぜこのエラーが発生するのですか?どうすればそれを防ぐことができますか?

+0

あなたはspecファイル、それは自己が、それは、フィンにできISNOTことを指定するエラーを投稿してくださいすることができHTML要素と呼ばれる仕様ファイルの必須属性特定のトリガーに基づいて仕様ファイルを参照する必要があるかもしれない –

+0

仕様コードを追加しました。新しく「npmテスト」を開始しても問題はありません。 –

答えて

1

私はあなたがlibの配列にDOMライブラリを追加する必要があり、あなたのプロジェクトであなたのtsconfig.jsonに推測:

"lib": ["es6", "dom", "es2015.iterable"], 
+0

es2015.iterableが不足していたので追加しましたが、影響はなく、まだエラーが発生しています。 –

+0

@MikeWitt tsconfig.spec.jsonファイルに変更を加えましたか –

+0

これを今追加しました。また、tsconfig.app.jsonにも追加しました。これらの追加は役に立ちませんでしたが、私はまだエラーが発生します。 –

関連する問題