2011-07-07 10 views
5

Tengo varias pruebas en el mismo espacio de nombres. No utilicé la convención de nombres como Test1, Test2, ... etc para cada una de las pruebas de mi unidad. Entonces, ahora cuando ejecuto todas las pruebas, no se ejecutan en el orden que quiero. ¿Hay alguna manera de solicitar pruebas?¿Es posible especificar el orden de las pruebas en Visual Studio C#?

Mis pruebas no fallan si no las ejecuto en un orden en particular. Sin embargo, solo quería ejecutarlos en el orden en que están en mi hoja de cálculo de caso de prueba.

+1

¡Vas a recibir muchos comentarios diciendo que no debería importar si son pruebas unitarias correctas! –

+8

No debería importar si son correctos ... –

+1

Estoy de acuerdo con la noción de prueba de unidad adecuada; sin embargo, para depurar una gran cantidad de pruebas, podría ser útil poder registrar en qué orden se ejecutaron las pruebas. permitiría depurar las pruebas para que sean adecuadas. – demongolem

Respuesta

5

La respuesta que está buscando es Sí. Aunque estoy de acuerdo con los principios de aislamiento, existen escenarios en los que debe probar una secuencia de eventos. En VS 2010 puede crear una nueva 'Prueba ordenada' para agrupar y probar un conjunto de pruebas secuencialmente.

+1

@GlennFerrieLive ¡Un ejemplo de código o un enlace a lo que realmente es una "Prueba ordenada" sería fabuloso! – iGanja

+0

@iGanja - Aquí hay una muestra. Lo comprimí y lo puse en mi Blob Store - http://j.mp/so-tests-sample –

8

Sus pruebas no deben depender de la orden; que rompe el concepto de prueba de no interdependencia. La falta de capacidad para ordenar las pruebas en Visual Studio es un reflejo de este concepto.

+5

Luego defina cómo hay un tipo de prueba llamado Prueba ordenada, donde selecciona qué pruebas de unidad ejecutar y en qué orden. –

2

Visual Studio tiene una plantilla incorporada para las pruebas ordenadas (suponiendo que esté utilizando el marco MSTest). Si abre el menú contextual en un proyecto de prueba, está disponible en el menú "Nueva prueba" o directamente como "Prueba solicitada". Nunca lo usé antes, pero supongo que sus pruebas se ejecutarán aún en un orden no definido si está ejecutando todas las pruebas en la solución.

4

Oh hombre, estás violando una de las principales reglas de prueba de unidad: "Aislamiento".

La prueba nunca debe tener orden de dependencia. No esperes la respuesta, ve y refactoriza tus pruebas para ser realmente independientes uno del otro. Créame, es mejor hacerlo ahora :)

+2

Gracias! Mis pruebas no son dependientes, pero solo quería que se ejecutaran en el orden en que están en mi hoja de cálculo de caso de prueba. – Maya

+0

bien) pero de todos modos, no deberías hacer eso ...) –

+0

Sé que esta pregunta es un poco antigua, pero tengo el mismo problema. Tengo dos pruebas independientes que se comunican con una base de datos de la que no tengo control. Para una ejecución de prueba adecuada, necesito la prueba de activación para ejecutar antes de la prueba de desactivación. ¿Hay alguna manera de eso? ¿Eso también viola las "principales" pruebas de aislamiento de las reglas de la unidad? Como quería usar pruebas unitarias para verificar que mi comunicación con el servidor de base de datos funciona correctamente, no quería alojar mi propia base de datos de prueba solo para mis pruebas unitarias. –

Cuestiones relacionadas