Frühling + JUnit + H2 + JPA : Ist es möglich, drop-erstellen der Datenbank für jeden test?
Halten die Unabhängigkeit zwischen den JUnit-tests muss ich die Datenbank erstellen zu Beginn jeder Prüfung, und zerstören es am Ende jeder Prüfung.
Sollte sich die Datenbank im Speicher erstellt ( H2-Datenbank ) durch das ausführen von SQL-Abfragen, die vorhanden sind in einer SQL-Datei (Native Abfragen einfügen...).
Definition meiner Schlüssel-Werte in einer properties-Datei und Achtung der JPA-Spezifikation (persistence.xml), wie kann ich die create-drop-Datenbank für alle JUnit-test mit Anmerkungen/Injektionen?
Vielen Dank!
Ich habe die beschriebene Anordnung arbeitet mit Arquillian, aber mithilfe von JBoss 7.1.1 anstelle von Spring und Hibernate als JPA-impl. Wenn Sie können Sie verwenden, Arquillian mit Feder, lassen Sie es mich wissen.
InformationsquelleAutor | 2014-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie in der Lage sein zu verwenden, Spring eingebettete Datenbank-Konfiguration angeben einer H2-datasource (siehe auch hier):
Dass sollte gehen in den test-spezifischen
testApplicationContext.xml
mit der entsprechenden namespace-Deklarationen.Frühjahr erstellen die H2-Datenquelle, wenn es bringt die test-Anwendung Kontext zu Beginn der test-suite (test-Klasse). Da die Feder speichert die Anwendung den Kontext für die Dauer der test-Klasse, die Sie beschriften können die test-Klasse mit
@DirtiesContext
so dass die Anwendung der Kontext wird neu erstellt und die datasource neu initialisieren für jede test-Methode:Mehr info auf Frühling, die eingebettete Datenbank-Funktionen finden Sie hier
InformationsquelleAutor Will Keeling
Sollten Sie wahrscheinlich verwenden JPA oder Spring features, aber nur der Vollständigkeit halber:
Auf der Datenbank-Seite, die H2-unterstützt läuft die init-Skripte, die beim öffnen der Datenbank wie folgt:
oder
Und beim schließen von in-memory-Datenbanken (wie im Beispiel oben), werden die Daten gelöscht. Oder man könnte die SQL-Anweisung ausführen
drop alle Objekte
.InformationsquelleAutor Thomas Mueller
JPA2.1 unterstützt drop-und-erstellen von schema , wenn die EMF wird initialisiert.
InformationsquelleAutor DataNucleus