sql >> Databasteknik >  >> RDS >> Mysql

Finns det något sätt att köra MySQL i minnet för JUnit-testfall?

Det enklaste sättet att använda en minnesdatabas som är helt kompatibel med MySQL och som kan användas i JUnit-testfall är imho MariaDB4j. du behöver bara ett Gradle (/Maven) beroende (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) och några rader kod för att starta:

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

ett startskript kan inkluderas via

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

Mer information om GitHub readme:https://github.com/vorburger/MariaDB4j

EDIT:Jag har ett lägg till några tips till det här svaret:MariaDB4j verkar lägga till filer i systemets temporära mapp. Så det kommer att fungera på ett inbäddat sätt vilket betyder att det inte finns något behov av att installera något och du kan bara använda beroendet via ditt önskade byggverktyg. Men det är inte en sann lösning som endast är i minnet och därför kan vi inte längre tala om enhetstester eftersom enhetstester inte får förlita sig på filer eller databaser



  1. Exempel på att konvertera "tid" till "datumtid" i SQL Server (T-SQL)

  2. Hur man skickar en POST-förfrågan med formulärdata och parametrar i PL/SQL

  3. Hur make_interval() fungerar i PostgreSQL

  4. Definiera tabell- och kolumnnamn som argument i en plpgsql-funktion?