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
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. TeamCity y ejecutar las pruebas de NUnit
- 2. Alternar entre utilizar NUnit y MSTest para pruebas unitarias
- 3. NUnit ignorar todas las pruebas
- 4. Creé las pruebas NUnit, ahora cómo las ejecuto?
- 5. Cómo solicitar Pruebas NUnit
- 6. Cómo graficar cómo cambian las variables en Visual Studio
- 7. ¿Cómo se manejan las pruebas unitarias en F #?
- 8. ¿Cómo ejecutar las pruebas unitarias (MSTest) en paralelo?
- 9. C#, NUnit: ¿Cómo lidiar con las pruebas de las excepciones y de ejecución diferida
- 10. ¿Cómo puedo ejecutar las pruebas NUnit (Selenium Grid) en paralelo?
- 11. ¿Cómo se manejan las pruebas de unidad/regresión que se espera que fallen durante el desarrollo?
- 12. NUnit vs Visual Studio 2010's MSTest?
- 13. ¿Cómo puedo ejecutar todas las pruebas NUnit en Team City?
- 14. MSTest, MyClassInitialize y variables de instancia
- 15. ¿Cómo manejan oozie las dependencias?
- 16. ¿Qué ventajas/desventajas tienen MSTest y NUnit comparadas entre sí?
- 17. ¿Cómo puedo crear pruebas NUnit con ReSharper?
- 18. Obtenga la lista de pruebas en la biblioteca nunit programáticamente sin tener que ejecutar las pruebas
- 19. Problemas con las pruebas controladas por datos en MSTest
- 20. FileNotFoundException cuando se ejecutan las pruebas de NUnit de TeamCity
- 21. NUnit manteniendo los datos estáticos en las pruebas
- 22. ¿Cómo funcionan las aplicaciones de iPhone que cambian su foto?
- 23. Cómo hago que NUnit ejecute las pruebas F # no exportadas por un módulo
- 24. NUnit: cómo ejecutar solo las pruebas que tienen propiedades específicas (prioridad o tipo)
- 25. Cómo hacer que NUnit deje de ejecutar las pruebas en la primera falla
- 26. ¿Cómo se manejan las interrupciones en SMP?
- 27. ¿Cómo se manejan las cadenas en C++?
- 28. ¿Cómo se manejan las funciones cpp?
- 29. ¿Cómo hacer que TeamCity ejecute pruebas usando MSTest?
- 30. ¿Cómo se manejan las dependencias 'profundas' con IoC y DI?
Esa información no está actualizada. MSTest seguramente ejecutará pruebas en paralelo. Solo necesita editar el archivo de configuración. –
@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