En una solución compleja VS2008 tengo tres proyectos de prueba de unidad. Como operan en la misma base de datos de prueba, es importante que los proyectos de prueba se ejecuten uno después del otro. No es importante qué proyecto primero, solo que uno termina antes de que comience el otro.Secuencia de prueba unitaria al ejecutar todas las pruebas en la solución
Si quiero ejecutarlos todo, hay varias maneras de hacerlo, que conducen a diferentes resultados:
- Tengo una lista de archivos de prueba .vsmdi donde las pruebas están clasificadas por proyecto. Si abro la lista y ejecuto las pruebas desde el editor de la lista de prueba, todo está bien.
- Si abro la ventana de Vista de prueba, ordeno las pruebas por proyecto y las ejecuto, de nuevo todo está bien.
- Sin embargo, si ejecuto las pruebas seleccionando 'Prueba -> Ejecutar -> Todas las pruebas en solución' del menú, se ejecutan en orden aleatorio donde algunas fallan, ya que uno de los otros proyectos de prueba ya manipuló la prueba db.
Entonces, la pregunta es, ¿qué determina la secuencia de prueba unitaria cuando se utiliza el tercer enfoque? ¿Hay alguna manera de especificar una lista de prueba predeterminada en .testrunconfig?
Como hay soluciones, el problema no es crítico en absoluto. Pero cualquier pensamiento es bienvenido. Gracias.
Estoy completamente de acuerdo con que se debe evitar un dispositivo compartido. Sin embargo, el problema aquí no es el orden de las pruebas, sino el hecho de que los proyectos de prueba se ejecutan en paralelo, lo que genera problemas de sincronización con la configuración y el desmontaje de la base de datos. No lo describí con suficiente detalle. Creo que ahora la mejor solución es una configuración y desmontaje global de la base de datos. – Wullie
No creo que MSTest ejecute pruebas en paralelo; al menos, esa no es mi experiencia en absoluto. –