TeamCityを使用して各ビルドで自動統合テストを実行するにはどうすればよいですか?
通常、次の手順があります。
- コードリポジトリからのチェックアウト。
- 建てる;
- 配備;
- サーバーを起動します。
- サーバーでテストを実行します。
問題は、これらのステップが互いに依存していることです。手順4まではすべて正常に機能します。ここでサーバーを起動しますが、手順4が終了するまで手順5に進みません。ただし、手順4が終了するとサーバーが停止するため、手順5のテストでは作業するサーバーがありません。
私が考えた唯一の回避策は、かなり奇妙で醜いです(そしてそれが実際に機能するかどうかはわかりません):最初は2分間待つことになっているデーモンスレッドで最初にテストをトリガーします(サーバーに始める); スレッドはデーモンスレッドであるため、JVMは停止でき、スレッドがテストのトリガーを続行している間も停止できます。この後、サーバーを起動する次のステップに進むことができ、サーバーが開始されるまで、タイマーが切れてテストがトリガーされます。