Ich arbeite an einer Testumgebung für ein Projekt und untersuche DbUnit.NET, um einen Großteil der Datenbankinteraktionstests durchzuführen. Ich habe jedoch eine sehr große Frage:DbUnit, wie man sich gegen mehrere gleichzeitig laufende Tests schützt?
Wir laufen gegen Oracle, und die Einrichtung einer separaten Test-DB-Instanz für jeden Entwickler ist wirklich nicht machbar (vor allem, da wir nur 1 DBA haben, der schon für Zeit geschnallt ist) . Dies bedeutet, dass alle Entwickler und der Continuous Integration Server dasselbe DB-Schema verwenden müssen.
Also, auf die Frage: Gibt es einen guten Weg zu verhindern, dass mehr als 1 Person zur gleichen Zeit testen? Es wäre einfach, einen Datensatz in eine db-Tabelle zu schreiben, die anzeigt, dass ein Test ausgeführt wird, und ihn nach Abschluss der Tests zu entfernen, aber NUnit hat keine Möglichkeit, etwas beim Start und am Ende der Testsitzung auszuführen.
Irgendwelche anderen Gedanken? Es scheint, als sollte es ein ziemlich häufiges Problem sein ... oder läuft eigentlich jeder einzelne DB-Instanzen für jeden Entwickler/Tester, der die Tests ausführen könnte?
Dies ist im Grunde, was ich dachte, ich würde tun. Mein großes Problem ist, dass ich mit einer Menge Legacy pl/sql (viel mehr als 10k Zeilen Wert) zu tun habe und an fast jedem Tisch triggert, und alles ist zur Zeit nicht getestet. Also muss ich Oracle und all seine Trigger und Sprocs passieren, sonst würde ich gerne eine SQLite-Datenbank im Speicher erstellen ... Danke für die Eingabe! – CodingWithSpike