2010-08-26 21 views
15

Estoy utilizando TeamCity para mis compilaciones de CI, y me gustaría configurar una segunda compilación para ejecutar pruebas de IU automatizadas en máquinas virtuales con Windows XP y Windows 7.Estrategia para pruebas automatizadas de IU en máquinas virtuales remotas

me imagino la acumulación de trabajo de la siguiente manera:

  1. de compilación, pruebas de la unidad de ejecución, etc.
  2. Preparar MSI con WiX
  3. Copia MSI para apuntar máquinas de prueba
  4. remotamente ejecutar MSI de
  5. Copiar código de arnés de prueba a máquina remota
  6. Ejecutar pruebas
  7. Acabados de construcción

Las pruebas de UI automáticas se escriben usando NUnit y deberían ejecutarse directamente en la máquina virtual de prueba (no se pueden ejecutar de forma remota). Es importante que, si las pruebas fallan, aparezca en el registro de compilación de TeamCity y la compilación falle. Prefiero no instalar VS o los agentes de compilación de TeamCity en cualquiera de las máquinas virtuales de prueba.

Parece que la mayor parte de esto debería ser posible usando psexec.exe. ¿Hay alguna herramienta alternativa (preferiblemente de código abierto) que deba tener en cuenta?

Respuesta

7

toma una respiración profunda

Estábamos buscando en algo para ayudarnos con nuestras pruebas de interfaz de usuario automatizados. Usamos ranorex para probar la interfaz de usuario y TeamCity/Msbuild para ejecutar las pruebas.

Nunca encontramos herramientas para ayudarnos (estoy constantemente atento a algunos, así que supervisaré este hilo) pero aquí es lo que hicimos en su lugar.

  1. El servidor de CI copia los archivos de configuración y los scripts de prueba en el servidor de prueba.
  2. A continuación, el servidor de CI inicia una aplicación personalizada en el Servidor de host de prueba proporcionando el nombre de la máquina virtual para el lanzamiento.
  3. El Servidor de host de prueba inicia el software de la VM, usando Virtual PC.exe -singlepc -pc vhdname.vhd -launch, y espera a que se apague (después de ejecutar sus pruebas).
  4. La VM toma los archivos de instalación y las secuencias de comandos de la ubicación de la red y se ejecuta.
  5. Después de ejecutar las pruebas, devuelve los resultados a una ubicación de red y se apaga.
  6. El control se devuelve a la aplicación personalizada.
  7. El control se devuelve al servidor de CI que determina a partir de los resultados si ha pasado o no (y actualiza la interfaz de usuario para que los desarrolladores conozcan el resultado).
  8. Los resultados se recopilan como artefactos en TeamCity y se etiquetan en Svn.

Creo que eso es todo. Es complicado, sin embargo, funciona. Espero que alguien de eso te ayude.

2

Jeff Brown del equipo Gallio ha sido talking about una herramienta llamada Archimedes que tiene previsto escribir para admitir este tipo de requisito. Parece prometedor, pero no creo que haya habido mucho progreso hasta el momento.

Mientras tanto, hay algo en el proyecto Gallio llamado VM Tool que puede hacer lo que quiera. Proporciona comandos para detener, iniciar e instantáneas de máquinas virtuales, y más importante aún, para copiar archivos hacia adelante y hacia atrás y ejecutar comandos.

Supongo que también ha considerado Powershell Remoting?

Cuestiones relacionadas