2
を作成した後に失敗私は単にそれにSharedComponentと共有モジュールを追加し、メインアプリケーションのコンポーネントでそのコンポーネントを使用しました:角度-cliのテストは、共有モジュール
<acs-shared></acs-shared>
すべてそのコンポーネントがない表示が「こんにちはです、世界!コンポーネントのプロパティを使用して:
<h1>Hello, {{name}}!</h1>
このnpm start
でプロジェクトを実行するとき、すべてが正常に動作しますが、今実行しているnpm test
は失敗し、そう$(npm bin)/karma start ./karma.conf.js
はありません。最初の失敗は 'acs-shared'要素を認識しないためコンポーネントを作成できないことです。他のコンポーネントやモジュールを使用するコンポーネントをテストするために特別なことが必要ですか?
Chrome 54.0.2840 (Windows 10 0.0.0) App: AngularCliStarter should create the app FAILED
'acs-shared' is not a known element:
プロジェクトはgithubの上で提供されています:https://github.com/JasonGoemaat/angular-cli-starter
素晴らしいテスト環境用のスクラッチから
@NgModule
を設定するようなもので、総理にかなっています!私は 'AppModule'をインポートし、それは働いた。コンポーネントが実際に入っているモジュールを含めない理由はありますか? AppModuleでSharedModuleをインポートすることを忘れる可能性があり、テストは成功すると思われますが、アプリケーションは動作しないようなので、これはより良いテストです。その後、宣言をスキップすることもできます。 –個人的には、これは単なる設定です。私はすべてのテストを制御し、不必要な変数から制限するようにしています。 AppModuleまでは、これをテストテストにインポートすることはありません。 AppModuleはあまりにも多くのことが起こっています。ここでは、多数のプロバイダ、BroswerModule、RoutingModules、必要のない他のものをインポートします。共有モジュールの場合でも、あまりにも多くの場合、共有モジュールをインポートするのではなく、テストベッドでコンポーネントを宣言するだけです。これも私の好みです。誰もが自分自身を持っています –
あなたがテストするほど、あなたは自分のスタイルと好みを理解し始めるでしょう。 –