2017-07-19 3 views
2

Angular/Typescript/Webpackプロジェクトでは、コード変更後にユニットテストを書き直しました。非常に基本的なコンポーネントのテストを実行しているときに、問題の症状が誤りだったError:モジュール 'DynamicTestModule'によって予期しない値 'undefined'が宣言されました

:「エラー:予期しない値はモジュールによって宣言された 『未定義』 『DynamicTestModule』」

問題をデバッグするために、私は巻き上げコンポーネントのコンストラクタと基本的にすべてのコードからすべての依存関係を取り除きます。コンポーネントは何もしませんでしたが、まだエラーがあります。依存関係がないため、循環依存ではありませんでした。

フォルダのファイルは以下の通りであった。

--profile 
----profile.component.ts 
----profile.component.spec.ts 
----profile.component.html 
----index.ts (barrel) 

(問題を把握するために取り除か最も意味のあるコード付き)コンポーネントは次のとおりです。

import { Component } from '@angular/core'; 
@Component({ 
    selector: 'profile', 
    template: `<h1></h1>` 
}) 
export class ProfileComponent { 
    title = 'Test Tour of Heroes'; 
    constructor(){} 
} 

そしてスペックは以下のとおりです。

import { NO_ERRORS_SCHEMA, DebugElement } from '@angular/core'; 
import { ComponentFixture, TestBed } 
    from '@angular/core/testing'; 

import { ProfileComponent } from './profile.component'; 

console.log(ProfileComponent); 

fdescribe('Component: Jasmine Spy Test',() => { 

    console.log(ProfileComponent); 

    let fixture: ComponentFixture<ProfileComponent>; 
    let component: ProfileComponent; 
    let fixture2: ComponentFixture<ProfileComponent>; 

    beforeEach(() => { 
    TestBed.configureTestingModule({ 
     declarations: [ProfileComponent] 
    }).compileComponents(); 

    fixture = TestBed.createComponent(ProfileComponent); 
    component = fixture.componentInstance; 
    }); 
    it(`should create instance of objects`,() => { 
    expect(1).toBe(1); 
    }); 
}); 

バージョン:

"@angular/core": "^4.0.0", 
"karma": "~1.4.1" 
"webpack": "^2.3.3" 

他のパッケージがたくさんありますが、それは問題ではないと思います。

私はVisualCode 1.14.0(1.14.0)を使用していました。

答えて

0

本当の問題VisualCodeはProfileComponentが./profile.componentにあったことが確認されたが、そのうちの印刷にconsole.logラインは「未定義」と何のコンパイル/ transpileエラーがスローされないと述べました。

フォルダには別の.htmlファイルがありますが、コードはそれを参照していません。 WebPACKのビルドについてのあった何かを持っている必要があります -

ProfileComponentは、私がprofile.component.htmlファイルの名前を変更したとき(もはや未定義の)値を持つようになりました。

私はこのファイルの特定のセットと間違っているかわからないので、そこに正しくテストを実行します。このプロジェクトでは、このまったく同じ命名規則/セットアップで任意の数のフォルダ。

誰かがこのエラーに遭遇した場合に備えて、私はここに残しておきます。

+0

同様の状況でこのエラーが発生した場合、Node/npmの実行中のすべてのスクリプトを終了するのに役立ちました。 Webpackのバグのように聞こえますが、それを再現することはできませんでした。 – jvoigt

関連する問題