1

アプリケーションサーバー(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秒かかります。問題は、サーバーが起動する前にテストがトリガーされた場合、明らかに失敗することです。これを同期する方法はありますか?または多分これを行う別の方法ですか?

4

1 に答える 1

0

テストの実行中にプロセスをデーモン化できるsupervisordGodなどの単純なプロセスマネージャーの使用を検討することをお勧めします。

私の場合、神を使って走ります:

 god -c my-project.god
 ruby test-runner.rb
 god terminate
于 2013-02-27T17:03:29.673 に答える