2012-07-26 10 views
5

Esta es una pregunta bastante simple. Estoy publicando esto porque no pude obtener ninguna respuesta satisfactoria. Primero, el trasfondo: tengo el trabajo de Jenkins que construye y despliega una aplicación web en un servidor. El servidor toma algo de tiempo (del orden de 5 a 10 minutos). Me gustaría configurar un trabajo (o modificar el existente según sea necesario) para montar la ejecución del caso de prueba de la unidad que probará la aplicación. Estoy pensando en los siguientes enfoques. Me gustaría que permite validar o sugerir alternativas:Cómo esperar a que el servidor aparezca y ejecute la prueba unitaria de Jenkins/Hudson

  • tienen una tarea Ant que espera un tiempo fijo
  • Tener un objetivo personalizada hormiga, que hace ping a la URL y comprueba la disponibilidad de aplicaciones

Gracias de antemano por tu ayuda. -Vadiraj.

Respuesta

6

Esperando un tiempo fijo tiene el problema de que el tiempo que elija es corto (falla de compilación) o largo (pérdida de tiempo de compilación). Por lo tanto, creo que sería mejor verificar si la aplicación está disponible.

He hecho algo similar para mis pruebas de Selenium. Tuve que esperar hasta que el Servidor Remoto Selenium haya comenzado. Usé el elemento waitfor. Para obtener una documentación detallada, consulte here.

Aquí es una versión simplificada de mi hormiguero Objetivo:

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

Si su servidor está disponible antes de que se despliega la aplicación web se puede tratar de utilizar la condición http en lugar de socket para comprobar si hay un servidor HTTP código de error. Las condiciones están documentadas here.

+0

¡Gracias, eso realmente ayudó! – Vadiraj

Cuestiones relacionadas