Ago 19 2008

Interacción con el escritorio, JSUnit y Hudson

Categoría: Integración ContinuaJuan @ 10:35 am

Hace unas cuantas semanas trabajando con un equipo en Kuala Lumpur me encontré con un problema al utilizar JSUnit junto con Hudson (en Windows). Para quien no lo conozca, Hudson, es un motor de integración continua similar a CruiseControl que, quizá, sea el más conocido (nota mental: escribir una entrada en exclusiva para Hudson en el futuro).

JSUnit, el entorno de test unitarios para JavaScript, utiliza un navegador (Explorer, FireFox, Opera, etc.) para ejecutar las pruebas. Cuando lanzaba las pruebas desde la consola (usando ant), estas eran ejecutadas sin problemas (abriendo el navegador pertinente y cerrándolo al terminar), sin embargo, cuando la misma operación era efectuada por Hudson, el navegador no era lanzado aunque el proceso era ejecutado (el proceso aparecía en ejecución en la lista de procesos).

Hudson normalmente es ejecutado por Apache Tomcat, el cual suele ser un servicio, y, por defecto, Tomcat tiene deshabilitada la opción de “interacción con el escritorio”. Esta era la razón por la cual el navegador no era ejecutado correctamente.

La manera de corregir este problema es yendo a las propiedades del servicio de Tomcat (accesibles desde Tomcat o desde las propiedades de servicios de Windows) y desde allí a la pestaña “Log on”. En esta pestaña hay que habilitar la opción “Allow service to interact with desktop” (ver la siguiente imagen) y una vez hecho esto reiniciar el servicio. Ahora Hudson debería ser capaz de lanzar cualquier navegador (o programa en ventana) sin problemas.

Integración de JSUnit y Hudson

Etiquetas: , , , , , ,