¿Cómo gestiona NUnit (y MSTest) las pruebas que cambian las variables estáticas / compartidas?

StackOverflow https://stackoverflow.com/questions/154180

Pregunta

Tengo algún código que utiliza el patrón de la puerta de enlace compartida para implementar una inversión del contenedor de control. Tengo varios cientos de pruebas unitarias NUnit que ejercitan el código que usa este IOC. Todos funcionan (¡en mi máquina!) Pero me preocupa que estas pruebas puedan fallar bajo carga. Me parece recordar que NUnit (y MSTest) intentan ejecutar pruebas en paralelo en varios subprocesos (lo que definitivamente provocarí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 secuencialmente. Mi pregunta es, ¿NUnit (o MSTest) alguna vez ejecuta pruebas unitarias en paralelo? Si es así, ¿en qué condiciones? Y, ¿puedo desactivar esto mediante algún tipo de opción de configuración?

¿Fue útil?

Solución

Actualización :

Visual Studio 2010 introdujo la capacidad de ejecutar pruebas en paralelo.

Aquí hay un artículo paso a paso sobre cómo habilitar esto.

MsTest:
Entonces, de acuerdo con David Williamson, de Microsoft Visual Studio Team System, en esta publicación en los foros de MSDN:

  

Las pruebas NO se ejecutan en absoluto   paralelo cuando se ejecuta en VS o a través   mstest.exe. Si se ejecutan en una   Prueba de carga a través de VS entonces eso es una   historia diferente. Ejecución básica,   sin embargo, siempre es serial.

Además, las pruebas que se ejecutan con MsTest se ejecutan con un subproceso diferente para garantizar que tenga una pizarra limpia para cada prueba. No hay forma de deshabilitar este comportamiento.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top