Un problema que creo que voy a encontrar con mis pruebas de integración es tener múltiples pruebas accediendo a la misma base de datos. Si bien esto no es un problema ahora, sé que tenemos varias aplicaciones aquí que acceden a la misma base de datos y solo estoy tratando de pensar en una forma de prevenir este problema antes de que ocurra.
Una idea que he visto mucho es usar transacciones. En el inicio, inicia una transacción y luego, en el desmontaje, revierte la transacción. Esto significa que múltiples pruebas acceden a las mismas tablas de la base de datos y no se afectarán entre sí, lo cual es excelente. El problema que tengo es que, en mi caso, el 85-95% de las tablas con las que estoy trabajando en MySQL son MyISAM que no admiten transacciones.
¿Hay alguna forma de evitar los motores de almacenamiento que no admiten transacciones pero que aún permiten que varias pruebas accedan a las mismas tablas sin que se afecten entre sí? Por lo que escuché, el marco de prueba de ruby on rails utiliza las transacciones de esta manera, ¿cómo pueden solucionar este problema (o lo hacen)?