10

Así que tengo una aplicación que heredé y quiero construir un conjunto de pruebas automatizadas a su alrededor. La aplicación no fue diseñada con la capacidad de prueba en mente, y el código es una "gran bola de barro". Mi plan era usar un marco de prueba de automatización de UI y crear un conjunto de pruebas en el nivel de UI hasta que tuviera la cobertura suficiente que me permitiera comenzar a refactorizar con confianza e introducir algunas costuras en el código para mejorar la capacidad de prueba y el diseño.UI Testing Framework + Integración continua?

Es una aplicación .NET Windows Forms, y los dos marcos yo sepa son:

NUnitForms

y

Project White

Por lo que he leído pose ambos marcos problemas al tratar de ejecutar como parte de una compilación automatizada (Integración continua) debido al hecho de que la mayoría de los productos de CI se ejecutan como un servicio de Windows y si la interfaz de usuario usa cuadros de diálogo modales la aplicación morirá de forma horrible muerte Estoy usando CruiseControl.Net como mi herramienta de CI.

¿Alguien tiene alguna sugerencia para solucionar este problema? ¿Un marco de trabajo alternativo que pueda mejorar la situación?

Gracias,

Dylan

Respuesta

2

No he intentado todavía, pero no es el UI Automation Framework de Microsoft:

+2

Creo que esto es en lo que se basa White. http://white.codeplex.com/Wiki/View.aspx?title=Layers –

3

En realidad se puede ejecutar el control de crucero a través de la aplicación de consola para que pueda tener acceso desde el escritorio interactivo. No se recuperará automáticamente si el servidor se reinicia o se bloquea, pero al menos puede hacerlo.

Dicho esto, el enfoque que la mayoría de las personas toma con las pruebas de IU automatizadas (winforms, wpf o web) es ejecutar todas las pruebas no interactivas a través del servidor de compilación. Una vez que pasan esas pruebas, implementan la aplicación en un entorno de prueba y activan manualmente una prueba contra la versión recién construida del código.

Esto brinda a las personas la posibilidad de restablecer el entorno de prueba (importante para las pruebas de IU), así como comprobar que la nueva versión de la aplicación se haya creado correctamente y que se hayan superado todas las pruebas unitarias. Después de todo, no tiene sentido ejecutar las pruebas de UI si sabes que las pruebas de la unidad se cayeron. :-)

+0

Correcto, pero en mi situación no tengo ninguna otra prueba. Y cualquier conjunto de pruebas que creo definitivamente quiero que se ejecute de forma automatizada o corremos el riesgo de que las pruebas se "pudran" y se vuelvan inútiles, ya que se rompen y nadie las mira ... Buena información sobre la aplicación de consola cc.net aunque –

1

Realizamos las pruebas de aceptación de integración continua en modo consola en lugar de como un servicio de Windows dentro de una PC virtual registrada. Eso funcionó para nosotros.