Wie sieht Ihre Spring-Konfiguration für Integrationstests aus, wenn Sie embedded h2 datasource und optional JUnit verwenden?Spring-Konfiguration für die eingebettete H2-Datenbank für Tests
Mein erster Versuch mit einem SingleConnectionDataSource funktionierte grundsätzlich, aber scheiterte an komplizierteren Tests, bei denen Sie mehrere Verbindungen gleichzeitig oder ausgesetzte Transaktionen benötigen. Ich denke, h2 in tcp based server mode könnte auch funktionieren, aber dies ist wahrscheinlich nicht der schnellste Kommunikationsmodus für eine temporäre eingebettete Datenbank im Speicher.
Was sind die Möglichkeiten und ihre Vorteile/Nachteile? Wie erstellen Sie die Tabellen/befüllen Sie die Datenbank?
Update: Lassen Sie uns einige konkrete Anforderungen angeben, die für solche Tests wichtig sind.
- Die Datenbank sollte nur vorübergehend sein und im Speicher
- Die Verbindung sollte wahrscheinlich nicht tcp verwenden, für Geschwindigkeitsanforderungen
- Es wäre schön, wenn ich ein Datenbank-Tool verwenden, könnte den Inhalt der Datenbank zu inspizieren während Debuggen
- wir haben eine Datenquelle zu definieren, da wir nicht die Anwendungsserver-Datenquelle in Unit-Tests
Wenn die Datenbank für die automatische DDL-Generierung von Modellen im Ruhezustand (hbm2ddl) konfiguriert wurde, werden Skripts vor der Datenstrukturgenerierung über Hibernate ausgeführt. Gibt es eine Lösung, um diese Skripte nach hbm2ddl auszuführen? –