Yeoman とgenerator-angularを使用して AngularJS アプリを管理していますが、自動テストに問題があります。
Runninggrunt test
は単体テストを 1 回実行します。Gruntfile.js
のカルマ構成ブロックを変更し、e2e を追加することで、単体テストの後に E2E テストを実行することができます。
karma: {
//...
e2e: {
configFile: 'karma-e2e.conf.js',
singleRun: true
}
},
すばらしい: 入力するとgrunt test
、すべてのテストが実行されるようになりました。ただし、それらは 1 回しか実行されず、大きなオーバーヘッドがあります (コンパスの開始、サーバーの実行、Chrome プロセスの起動など)。代わりに、サーバーと Chrome プロセスを実行したままにし、テストを保存するときにテストを再実行する必要があります。
karma.conf.js
これを実現するには、 とkarma-e2e.conf.js
および 設定の両方を変更し、1 つのターミナル ペインでsingleRun = true
実行し、別のターミナル ペインで実行します。カルマ構成の競合 (デフォルトで競合する) 内のポートがまったくない場合、これは機能します。今、私は Grunt をバイパスして、自分のことをしているだけです (Grunt は物事を簡単にするはずなので、少しばかげているようです)。karma start
karma start karma-e2e.conf.js
とにかく、さらにいくつかの変更 (修正?) を行った後 (簡潔にするために詳しく説明しません)、これは機能しますが、うまくいきません。2 つの異なるコマンドを実行し、2 つの異なるターミナル ペインを監視する必要があります。きっともっと良い方法があります。
単一のコマンドを実行してテスト ファイルを監視し、テストを適切に再実行するにはどうすればよいですか?
おまけの質問: この機能がそのまま提供されないのはなぜですか? generator-angular の開発者がこのようなものを実装するのに十分な時間がないという問題ですか? 私は Angular/Yeoman/Karma を始めたばかりなので (お気づきかもしれませんが)、E2E と単体テストの両方の自動テストがワークフローにとって重要であると感じているためです。