Pruebas de integración mejores prácticas

Nuestro equipo tiene cientos de pruebas de integración que llegan a una base de datos y verifican los resultados. Tengo dos clases básicas para todas las pruebas de integración, una para las pruebas de recuperación y otra para las pruebas de creación / actualización / eliminación. La clase base solo de recuperación regenera la base de datos durante el TestFixtureSetup por lo que solo se ejecuta una vez por clase de prueba. La clase base CUD regenera la base de datos antes de cada prueba. Cada clase de repositorio tiene su propia clase de prueba correspondiente.

Como puede imaginar, todo esto lleva bastante tiempo (se acerca a 7-8 minutos para correr y crecer rápidamente). Tener esta ejecución como parte de nuestro CI (CruiseControl.Net) no es un problema, pero la ejecución local lleva mucho tiempo y realmente prohíbe ejecutarlos antes de cometer código.

Mi pregunta es: ¿existen prácticas recomendadas para ayudar a acelerar la ejecución de estos tipos de pruebas de integración?

No puedo ejecutarlos en memoria (a la sqlite) porque usamos algunas funciones específicas de la base de datos (columnas calculadas, etc.) que no son compatibles con sqlite.

Además, todo el equipo debe poder ejecutarlos, por lo que ejecutarlos en una instancia local de SQL Server Express o algo podría estar propenso a errores a menos que las cadenas de conexión sean todas iguales para esas instancias.

¿Cómo está logrando esto en su tienda y qué funciona bien?

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta