Un problema che ritengo di incontrare con i miei test di integrazione sta avendo più test che accedono allo stesso database. Anche se questo non è un problema ora, so che qui abbiamo più applicazioni che accedono allo stesso database e sto solo cercando di pensare a un modo per prevenire questo problema prima che accada.
Un'idea che ho visto molto sta usando le transazioni. All'avvio si avvia una transazione e quindi nel teardown si esegue il rollback della transazione. Ciò significa che più test accedono alle stesse tabelle del database e non si influenzano a vicenda, il che è ottimo. Il problema che ho è che nel mio caso, l'85-95% delle tabelle con cui sto lavorando in MySQL sono MyISAM che non supportano le transazioni.
Ci sono dei modi per aggirare i motori di memorizzazione che non supportano la transazione, ma consentono comunque a più test di accedere alle stesse tabelle senza che si influenzino a vicenda? Da quanto ho sentito, il ruby on rails testing framework usa le transazioni in questo modo, come aggirano questo problema (o loro)?