アプリケーションサーバー(JBoss)で実行されるテストがいくつかあります。これらのテストをJenkinsに統合したいと思います。
Jenkinsには次の手順があります(すべての手順はAntの手順です)。
- ...(その他の手順)
- バックグラウンドでサーバーを起動します
- テストを実行する
- サーバーを停止します
- ...(その他の手順)
次のタスクを実行するには、サーバーをバックグラウンドで起動する必要があります。これを模倣するために、次のスクリプトを作成しました。
export LAUNCH_JBOSS_IN_BACKGROUND=1
./run.sh &
sleep 400
cd /testTriggerLocation
ant run-tests
kill `cat $jBossHome/4.0.5/bin/jboss.pid`
run.shはサーバーを起動し、起動後、JVMプロセスIDをjboss.pidに保存します。
通常の方法(フォアグラウンドプロセス)では、JBossの起動には約100秒かかりますが、ここではスリープの引数に応じた値を取ります。200秒の場合は約190〜210秒、300秒の場合は290〜310秒かかります。問題は、サーバーが起動する前にテストがトリガーされた場合、明らかに失敗することです。これを同期する方法はありますか?または多分これを行う別の方法ですか?