2012-07-26 11 views
5

Questa è una domanda piuttosto semplice. Sto postando questo perché non ho potuto ottenere una risposta soddisfacente. Prima di tutto: ho un lavoro Jenkins che costruisce e distribuisce un'applicazione web su un server. Il server impiega un po 'di tempo (nell'ordine di 5-10 minuti). Vorrei impostare un lavoro (o modificare l'esistente come richiesto) per preparare l'esecuzione del caso di test dell'unità che testerà l'applicazione. Sto pensando ai seguenti approcci. Vorrei di convalidare o suggerire alternative:Come attendere la comparsa del server ed eseguire il test dell'unità da Jenkins/Hudson

  • hanno un obiettivo di Ant che attende un tempo fisso
  • Avere un obiettivo Ant personalizzato che fa un rumore metallico l'URL e controlla la disponibilità di app

Grazie in anticipo per il vostro aiuto. -Vadiraj.

risposta

6

L'attesa di un orario prestabilito ha il problema che il tempo che si sceglie è breve (build fallita) o troppo lunga (spreco di tempo di compilazione). Quindi penso che sarebbe meglio controllare se l'app è disponibile.

Ho fatto qualcosa di simile per i miei test al selenio. Ho dovuto aspettare fino all'avvio del Selenium Remote Server. Ho usato l'elemento waitfor. Per una documentazione dettagliata vedere here.

Ecco una versione ridotta della mia ant-Target:

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

Se il server è disponibile prima che il web app viene distribuito si può provare a usare la condizione http invece di socket per verificare la presenza di un HTTP codice di errore. Le condizioni sono documentate here.

+0

Grazie, mi ha davvero aiutato! – Vadiraj

Problemi correlati