Pregunta

Agregué algunas pruebas simples de WatiN a nuestra aplicación hoy para verificar que un valor de cookie se almacena correctamente.

Las pruebas pasan localmente en todas las máquinas del equipo. Sin embargo, cuando CruiseControl ejecuta las pruebas en nuestro servidor Build, estas nuevas pruebas fallan en la línea que contiene

browser.GetCookie (url, cookieName)

El error dado en el registro de CruiseControl es la antigua castaña de:

La referencia de objeto no está establecida en una instancia de un objeto.

He iniciado sesión en el servidor Build con Escritorio remoto, utilizando la misma cuenta de usuario con la que se ejecuta CruiseControl, y ejecuto MbUnit manualmente, y las pruebas pasan. Por lo tanto, no puede ser un problema con los permisos en el servidor Build para acceder a las cookies.

He revisado toda la documentación de WatiN en busca de ayuda, pero aparece vacía. He reiniciado el servicio CruiseControl. He intentado todo lo que puedo pensar y ahora estoy completamente perdido en cuanto a lo que podría ser diferente en la forma en que Cruise Control ejecuta estas pruebas.

¿Alguien sabe qué podría estar causando esto y / o cómo resolverlo?

¿Fue útil?

Solución

Intente ejecutar CruiseControl como una aplicación en lugar de como un servicio. WatiN tiende a bloquearse cuando se ejecuta desde un servicio (ya que los servicios de Windows no están conectados a una sesión de IU, y WatiN requiere uno para manejar cuadros de diálogo en IE).

Pero además de eso ... recuerde que las cookies de IE se almacenan en su perfil de usuario. Los perfiles no se cargan cuando se ejecutan los servicios: son procesos de daemon que se ejecutan silenciosamente en segundo plano y en realidad no se ejecutan en el contexto de una sesión de inicio de sesión. Sospecho que esa es la causa de su excepción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top