visual unit test studio net example ejemplo dotnet unit-testing nunit parallel-processing

unit-testing - studio - unit test.net core



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

Actualizar:

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:
De acuerdo con David Williamson, del Sistema de Equipo de Microsoft Visual Studio, en esta publicación en los foros de MSDN:

Las pruebas NO se ejecutan en paralelo cuando se ejecutan 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 garantizar que tenga un borrón y cuenta nueva para cada prueba. No hay forma de desactivar este comportamiento.

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

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?