Pregunta

Usamos UI Automation y Nunit para crear pruebas de UI para la aplicación WPF. Hemos creado pruebas que funcionan bien cuando las ejecuta desde una máquina local. Esas pruebas nunca se ejecutan con éxito en nuestro servidor de compilación (utilizando TeamCity). La compilación siempre se cuelga después de abrir la ventana de la aplicación. Pero si estoy conectado (escritorio remoto), en nuestro servidor de compilación todas las pruebas de UI Automation también se ejecutan con éxito. Así que supongo que probablemente tenga algo que ver con ejecutar una sesión activa de Windows. ¿Alguna idea de cómo convencer a nuestro servidor de compilación para que cree una sesión de Windows activa o alguna otra solución para que esas pruebas se ejecuten en el servidor de compilación?

¿Fue útil?

Solución

No tienes muchas opciones. Enumeraré las dos que sé, la opción más preferida primero:

  • Configura una máquina virtual en tu servidor de compilación. Sus compilaciones se ejecutan en la máquina virtual. Puede bloquear el host (también conocido como su servidor de construcción) manteniendo las cosas seguras.
  • Mantener a alguien conectado en todo momento. Este curso crea un problema de seguridad. Puede solucionar un poco este problema quitando el mouse, el teclado y la pantalla y solo acceda al servidor de compilación a través de RDP o algo similar.

Editar

Eche un vistazo a este Preguntas frecuentes sobre TestComplete : Puede TestComplete ejecutar scripts cuando la computadora está bloqueada?

Otros consejos

OK, solo estoy adivinando aquí.

Pruebe y ejecute el servicio TeamCity con un usuario del servidor de compilación local en lugar de la cuenta del sistema. Tal vez tenga que iniciar sesión con esa cuenta una vez, antes de comenzar una nueva compilación.

Definitivamente parece que necesita ejecutar sus pruebas con una sesión interactiva en lugar de un servicio. Agregando el " Permitir que el servicio interactúe con el escritorio " podría ayudar, pero aparentemente esto no es compatible con Vista.

Si puede ejecutar sus compilaciones interactivamente como una línea de comandos, no es un servicio que también debería funcionar.

Solíamos ejecutar nuestras pruebas de automatización UIA usando el agente de carga visual studo 2008 para distribuirlas, ejecutándolas como una herramienta de línea de comandos en máquinas virtuales sin ningún problema.

También estoy de acuerdo en que probablemente no deberías ejecutar pruebas de UI en un servidor de compilación como parte de tu compilación diaria.

  

La compilación siempre se bloquea después de abrir la ventana de la aplicación.

¿Pruebas que crean instancias de la interfaz de usuario? Eso no va a funcionar, p. Si obtiene un diálogo modal, la compilación se bloqueará. Esta es la razón por la cual se inventó el patrón MVP, para aislar el código de presentación activo de una vista concreta.

¿Está utilizando una vista simulada en sus pruebas automatizadas?

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