sql >> Database >  >> RDS >> Mysql

Is er een manier om MySQL in het geheugen uit te voeren voor JUnit-testcases?

De gemakkelijkste manier om een ​​in-memory database te gebruiken die volledig compatibel is met MySQL en kan worden gebruikt in JUnit-testcases, is imho MariaDB4j. Je hebt alleen een Gradle (/Maven)-afhankelijkheid nodig (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) en een paar regels code om te beginnen:

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

een opstartscript kan worden opgenomen via

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

Meer informatie over GitHub readme:https://github.com/vorburger/MariaDB4j

EDIT:Ik heb een aantal hints toegevoegd aan dit antwoord:de MariaDB4j lijkt bestanden toe te voegen in de tijdelijke systeemmap. Het zal dus op een ingebedde manier werken, wat betekent dat er niets hoeft te worden geïnstalleerd en dat u de afhankelijkheid gewoon kunt gebruiken via uw gewenste build-tool. Maar het is geen echte in-memory-only oplossing en daarom kunnen we niet meer spreken van unit-tests omdat unit-tests niet mogen vertrouwen op bestanden of databases



  1. Een tabel maken in SQL Server met behulp van een query

  2. Hoe postgresql voor de eerste keer configureren?

  3. Hoe de leeftijd vanaf de geboortedatum in SQL te berekenen

  4. Virtualisering inschakelen in BIOS op laptop of desktop voor Virtualbox VM