2012-07-26 3 views
5

これはかなり簡単な質問です。私は満足のいく答えを得ることができなかったので、これを掲示しています。最初の背景:WebアプリケーションをビルドしてサーバーにデプロイするJenkinsの仕事があります。サーバーには時間がかかります(5〜10分程度)。私は、アプリケーションをテストするユニットテストケースの実行をリグアップするために、ジョブをセットアップする(または必要に応じて既存のものを変更する)ことを望みます。私は以下のアプローチを考えています。私はあなたがどの選択肢を検証したり提案したい:Jenkins/Hudsonからサーバが立ち上がってユニットテストを実行するのを待つ方法

  • 一定時間を待ってAntターゲットをお持ちの

アプリの可用性のためのURLとチェックにpingを実行するカスタムAntターゲットを持っていますあなたの助けを前にありがとう。 -Vadiraj。

答えて

6

固定時間を待っていると、選択した時間が短くなる(ビルドできない)か、長くなる(ビルド時間が浪費される)という問題があります。だから私はそれがアプリが利用可能かどうかを確認する方が良いと思う。

私はセレンのテストでも同様のことをしました。 Selenium Remote Serverが起動するまで待つ必要がありました。私はwaitfor要素を使用しました。詳しくは、hereを参照してください。ここで

は私のアリ・ターゲットのストリップダウンバージョンです:

<parallel> 
    <sequential> 
    ... Start web application server ... 
    </sequential> 
    <sequential> 
    <waitfor maxwait="10" maxwaitunit="minute"> 
     <socket server="localhost" port="8080" /> 
    </waitfor> 
    <junit> 
    ... 
    </junit> 
    </sequential> 
</parallel> 

サーバーが利用可能な場合はWebアプリケーションをデプロイする前に、あなたはHTTPをチェックする代わりにsockethttp条件を使用しようとすることができますエラーコード。条件はhereと記載されています。

+0

本当に助かりました! – Vadiraj