ロードされたファイルに対してソースコード変換を実行するService Workerを作成したいと考えています。この機能をテストするために、Karma を使用します。
私たちのテストでは、ソース コード変換が実行されるソース ファイルをインポートします。テストは、Service Worker が変換を実行した場合にのみ成功し、Service Worker がアクティブでない場合に失敗します。
ローカルで Karma を開始しsingleRun: false
、変更されたファイルを監視してテストを再開できます。ただし、Service Worker は、最初に読み込まれたページではアクティブではありません。したがって、すべてのテスト ケースは成功しますが、最初のケースは成功します。
ただし、継続的インテグレーションには、シングルラン モードが必要です。そのため、テストの実行中に Service Worker はアクティブではなく、それに応じて失敗します。また、2 回連続して実行しても、この問題は解決しません。Karma は使用中のブラウザーを再起動するためです (そのため、Service Worker が失われます)。
問題は、テスト実行で Service Worker を利用できるようにする方法です。たとえば、カルマが使用するブラウザー インスタンスを保持することによって。