2

現在、テンプレートが templateUrl で参照されている Angular 2 コンポーネントをテストする簡単なテストを作成しています。現在、テストを含む必要なタスクを実行するために webpack を使用しています。angular サイトのwebpack ガイドと AngularClass のangular2-webpack-starter repo に従っていました。

ただし、テストがコンポーネント フィクスチャを作成しようとすると、

testBed.createComponent(AppComponent);

次のエラーが表示されます。

"'未処理の Promise 拒否:'、'app.component.html の読み込みに失敗しました'、'; ゾーン:'、'ProxyZone'、'; タスク:'、'Promise.then'、'; 値:'、'失敗しましたapp.component.html をロード',"

したがって、明らかにテストが失敗します。

私の app.component.ts では、次のように templateUrl を介してテンプレートを参照しています

@Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: [ './app.component.css' ]
})
export class AppComponent {
    title = "Tour of Heroes";
}

周りを見回しましたが、このエラーの解決策が見つかりませんでした。この問題を知っている人はいますか?これまでに遭遇したすべての例 (たとえば、このリポジトリhttps://github.com/rangle/angular2-redux-exampleの例など) にはすべてインライン html が含まれています。

webpack / karma 構成ファイルを確認したい場合に備えて、私のレポへのリンクを次に示します。 https://github.com/jeanpaulattard/tourofheroes

編集:私のレポのマスターブランチへのリンクを更新しました。

4

1 に答える 1

2

いろいろいじった後、webpack へのアップグレードに関する angular ガイドに戻り、webpack.test.ts ファイルで ts- の代わりに awesome-typescript-loader を使用していたという事実に問題を絞り込みました。 angular2-template ローダーとチェーンされたローダー。

文字 2 を使用した後 (angular 自体で提供されているガイドに記載されているように)、テンプレートが読み込まれたプロパティで、テストが再び機能し始めました。

もともと、コード カバレッジの再マッピングのソリューションとして他の場所で提案されていたため、ts-loader + angular2-template-loader から awesome-typescript-loader に移動しました。

更新: 先週の最終リリース ( https://angular.io/docs/ts/latest/guide/webpack.html ) 後の webpack ガイドの更新に続いて、ガイドが更新され、" awesome-typescript-loader」.

その場合は、ガイドで提案されている「awesome-typescript-loader」v2.2.4 を必ず使用してください。提案どおりに「awesome-typescript-loader」を使用しようとしたところ、テストが再び失敗し始めました。それは、うまく機能していないように見える 1.x バージョンを使用していることに気付くまででした。

于 2016-09-15T07:46:09.820 に答える