sql >> Database teknologi >  >> RDS >> Mysql

Er der en måde at køre MySQL in-memory for JUnit test cases?

Den nemmeste måde at bruge en in memory-database på, der er fuldt kompatibel med MySQL og kan bruges i JUnit-testsager, er imho MariaDB4j.du skal bare have en Gradle (/Maven) afhængighed (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) og et par linjer kode for at starte:

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

et startscript kan inkluderes via

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

Flere oplysninger om GitHub readme:https://github.com/vorburger/MariaDB4j

EDIT:Jeg har tilføjet nogle tip til dette svar:MariaDB4j ser ud til at tilføje filer i systemets midlertidige mappe. Så det vil fungere på en indlejret måde, hvilket betyder, at der ikke er behov for at installere noget, og du kan bare bruge afhængigheden via dit ønskede byggeværktøj. Men det er ikke en ægte in-memory-only-løsning, og derfor kan vi ikke længere tale om enhedstests, fordi enhedstests ikke må stole på filer eller databaser



  1. JSON-funktioner er nu aktiveret som standard i SQLite

  2. Er mine MySQL-serverforbindelser krypteret og sikre?

  3. Dvale kortlægning mellem PostgreSQL enum og Java enum

  4. Sådan installeres MySQL Workbench på Ubuntu