web-dev-qa-db-ja.com

Angularライブラリ、ライブラリコンポーネントとサンプルアプリの両方を同時にテストする

公式ガイドラインと他の投稿( これ など)を使用してAngularライブラリを作成しました。

ライブラリは非常にシンプルで、component.tsにテストが含まれるcomponent.spec.tsコンポーネントが1つだけ含まれています。

ライブラリと一緒に、component.tsの使用方法を示すサンプルアプリもあります。サンプルアプリはapp.component.tsで表され、app.component.spec.tsに独自のテストがあります。

私のワークスペースの足場はAngular CLI(v 6.0.8)によって作成されました。少なくとも私の場合により関連性があると思われるファイルのワークスペースの構造は、以下

workspace
 - projects
   - library-name
     - src
       - lib
         - component.ts
         - component.spec.ts
       - test.ts
     - karma.config.ts
 - src
   - app
     - app.component.ts
     - app.component.spec.ts
   - karma.config.ts
 - angular.json

ng test library-nameを実行すると、component.spec.tsのテストのみが実行されます。

コンポーネントとサンプルアプリの両方をテストしたいので、ライブラリ名を指定せずにng testを実行すると、次のようになります。

  • ブラウザはカルマによって自動的に開かれます
  • app.component.spec.tsのテストが実行され、開いたばかりのブラウザに結果が表示されます
  • ctrl + Cでプロセスを停止すると、新しいプロセスが開始され、component.spec.tsのテストが実行されます(つまり、最初のテストの中断)プロセスは2番目のテストプロセスを開始します)
  • ctrl + Cでテストを再度停止すると、最終的にすべてが停止し、コマンドラインに戻ります

私の質問は、同じプロセス内でapp.component.spec.tscomponent.spec.tsの両方のテストを実行する方法があるかどうかです。

12
Picci

私はまだ答えられていない古い投稿を知っていますが、私はそれを調べて解決策を見つけました。

ng test example-ng6-lib-app --no-watch && ng test example-ng6-lib --no-watch

どこ example-ng6-libは、質問の添付の 記事 によるlibraryの名前です。

ぜひお試しください

1
Shashank Vivek