10/9/2009 18:37 El Bruno

[VSTS] HowTo: Ejecutar pruebas unitarias con un determinado orden

 

 

Buenas,

hoy el amigo Julio preguntaba en los foros de Team System en español si es posible definir de alguna manera un orden específico para ejecutar pruebas unitarias. Como es un crack, no dió tiempo a que nadie le responda y él mismo respondió su pregunta: utilizando los Ordered Tests.

En MSDN existen un par de artículos que explican bien como utilizar los mismos, pero si alguien se queda con ganas de una explicación más hogareña, el siguiente tutorial puede ser de configuración.

Tutorial

1. Suponemos que tenemos una solución con varias pruebas unitarias:

image

y que deseamos ejecutar en orden las siguientes pruebas unitarias:

  • GetHolaMundoTest_001
  • GetHolaMundoTest_002
  • GetHolaMundoTest_003

2. Seleccionamos el proyecto de pruebas y agregamos un nuevo elemento del tipo Ordered Tests, al que llamaremos [TestOrdenado]

image

3. Una vez agregado podremos ver que el mismo nos presenta un formulario donde podremos definir a partir de nuestras listas de test un orden específico para las pruebas que deseemos.

4. A continuación seleccionamos los tests en el orden que definimos el punto 1 y los agregamos a la lista [Selected Tests]

image

5. Es posible configurar la ejecucion para que la misma se detenga si un test falla utilizando el check [Continue after failure].

6. Si vemos nuevamente la lista de tests, podremos ver que nuestro elemento TestOrdenado aparece como un nuevo test en la misma.

image

7. Si ejecutamos el test podremos ver que si bien en la lista de tests aparece como un único elemento, la cantidad de tests que realmente se ejecutan es 4: TestOrdenado mas los 3 tests internos.

image

8. Si deseamos más detalle, podemos hacer doble click sobre el test y veremos una ventana de detalle con la ejecución de los tests internos del Test Ordenado:

image

 

Una vez más, una solución bastante simple y poderosa a un problema bastante común dentro de Visual Studio Team System.

 

Saludos @ Bilbao

El Bruno

Archivado en: ,,
Comparte este post:

# re: [VSTS] HowTo: Ejecutar pruebas unitarias con un determinado orden

Friday, September 11, 2009 7:17 AM by Cristhian

c:> set mode_purista on

Dice la wikipedia - fuente inagotable de sabiduría popular -  es.wikipedia.org/.../Prueba_unitaria,  que una de las características de las pruebas unitarias debería ser la independencia de las unas con las otras, por lo que el orden de ejecución - en la medida de lo posible- no debería ser importante. De hecho, existe alguna extensión para el NUnit que permite ejecutarlas en paralelo, con lo que se optimiza el tiempo de ejecución, tan necesario en la compilación continua.

Ask to Bruno: ¿Existe alguna manera de ejecutar las pruebas en paralelo en Visual Studio?

No obstante, he de admitir, que más de una vez he escrito pruebas de muchos pasos en pruebas más pequeñas, en las que sí que ha sido importante en orden de ejecución.

Pero me quedo con esta idea: si de lo que se trata es de probar un método de una clase -que se codificó con su correspondiente prueba en mente o escrita ya de antemano-  seguramente la necesidad de crear pruebas no independientes denota excesiva complejidad en el método o en la prueba, con lo que convendría revisarlas.

# re: [VSTS] HowTo: Ejecutar pruebas unitarias con un determinado orden

Friday, September 11, 2009 10:03 AM by Julio Trujillo Leon

He abierto otro hilo... lo digo por si te animas... jejeje es para saber de que forma copiamos en la carpeta de resultados de las pruebas unitarias los archivos que necesitemos para ejecutar las pruebas (en mi caso un archivo para subir a FTP por ejemplo)

social.msdn.microsoft.com/.../c8debc39-4e5c-4e34-a804-bc86604df919

# re: [VSTS] HowTo: Ejecutar pruebas unitarias con un determinado orden

Friday, September 11, 2009 7:59 PM by Miguel LLopis

Coincido plenamente con el comentario purista de Cristhian.

@Julio:

La forma mas apropiada es emplear el atributo [DeploymentItem "item"] en cada TestMethod que requiera de algun archivo adicional.

Puedes echar un vistazo a la documentacion de MSDN al respecto: msdn.microsoft.com/.../microsoft.visualstudio.testtools.unittesting.deploymentitemattribute(VS.80).aspx

Saludos,

M.

# re: [VSTS] HowTo: Ejecutar pruebas unitarias con un determinado orden

Saturday, September 12, 2009 11:25 AM by El Bruno

@Cristhian, 100% agree y no conozco forma de ejecutar en paralelo, me lo apunto :D

@Julio: además del ejemplo de Miguel, puedes hacerlo con una task del MsBuild, ya te posteo un ejemplo que me das ideitas para el blog

@Miguel: gracias crack :D

Saludos

# re: [VSTS] HowTo: Ejecutar pruebas unitarias con un determinado orden

Tuesday, September 15, 2009 9:22 AM by GiS

Coincido con que las pruebas unitarias deberían ser independientes y que el orden no debería alterar el resultado...Pero si que me parece interesante el hecho de poder parar la ejecución si algún test casca.Sobre todo cuando tienes tres millones de test que lanzar :)

¡Buen post!

Saludos