2008-09-30 12 views
9

Tengo un código que usa el patrón de puerta de enlace compartida para implementar una inversión del contenedor de control. Tengo varios cientos de pruebas de unidades NUnit que ejercen el código que usa este IOC. Todos funcionan (¡en mi máquina!) Pero me preocupa que estas pruebas fallen bajo carga. Parece recordar que NUnit (y MSTest) intenta ejecutar pruebas en paralelo en varios hilos (lo que definitivamente desencadenaría condiciones de carrera en la puerta de enlace estática/compartida) pero no puedo encontrar ninguna documentación que diga lo que realmente sucede. Mi experiencia es que NUnit parece estar ejecutando las pruebas de forma secuencial. Mi pregunta es, ¿alguna vez NUnit (o MSTest) ejecuta pruebas unitarias en paralelo? Si es así, ¿en qué condiciones? Y, ¿puedo desactivar esto a través de algún tipo de opción de configuración?¿Cómo manejan NUnit (y MSTest) las pruebas que cambian las variables estáticas/compartidas?

Respuesta

8

Actualización:

Visual Studio 2010 introdujo la posibilidad de ejecutar las pruebas en paralelo.

Aquí hay un step by step article acerca de cómo habilitar esto.

MSTEST:
Así, según David Williamson, de Microsoft Visual Studio Team System, en this post en los foros de MSDN:

pruebas absolutamente no se ejecutan en paralelo cuando se ejecuta en VS o vía mstest.exe. Si se ejecutan en una prueba de carga a través de VS, esa es una historia diferente . La ejecución básica, , sin embargo, siempre es en serie.

Además, las pruebas que se ejecutan con MsTest se ejecutan cada una utilizando un hilo diferente para asegurarse de tener una pizarra borrosa para cada prueba. No hay forma de desactivar este comportamiento.

NUnit:
NUnit ejecuta todas las pruebas en el mismo hilo.

+1

Esa información no está actualizada. MSTest seguramente ejecutará pruebas en paralelo. Solo necesita editar el archivo de configuración. –

+8

@JonathanAllen - Así que edita la maldita respuesta tipo. Eso sería un mejor uso de su tiempo y reputación en lugar de downvoting. – Josh

Cuestiones relacionadas