Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es eine Möglichkeit, MySQL im Arbeitsspeicher für JUnit-Testfälle auszuführen?

Der einfachste Weg, eine In-Memory-Datenbank zu verwenden, die vollständig mit MySQL kompatibel ist und in JUnit-Testfällen verwendet werden kann, ist meiner Meinung nach MariaDB4j. https://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22">http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) und ein paar Zeilen Code zum Starten:

DB database = DB.newEmbeddedDB(3306);
database.start();
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");

ein Startskript kann über

eingebunden werden
database.source("path/to/resource.sql");

Weitere Informationen in der GitHub-Readme:https://github.com/vorburger/MariaDB4j

BEARBEITEN:Ich habe dieser Antwort einige Hinweise hinzugefügt:MariaDB4j scheint Dateien im temporären Ordner des Systems hinzuzufügen. Es funktioniert also eingebettet, was bedeutet, dass Sie nichts installieren müssen und Sie einfach die Abhängigkeit über Ihr gewünschtes Build-Tool verwenden können. Aber es ist keine echte In-Memory-Only-Lösung und daher können wir nicht mehr von Unit-Tests sprechen, da Unit-Tests nicht auf Dateien oder Datenbanken angewiesen sind