sql >> Databáze >  >> RDS >> Mysql

Existuje způsob, jak spustit MySQL v paměti pro testovací případy JUnit?

Nejjednodušší způsob, jak používat databázi v paměti, která je plně kompatibilní s MySQL a lze ji použít v testovacích případech JUnit, je imho MariaDB4j. Potřebujete pouze závislost Gradle (/Maven) (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) a několik řádků kódu na začátek:

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

spouštěcí skript lze zahrnout pomocí

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

Další informace o GitHubu readme:https://github.com/vorburger/MariaDB4j

EDIT:K této odpovědi mám přidat několik rad:Zdá se, že MariaDB4j přidává soubory do dočasné složky systému. Bude tedy fungovat vestavěným způsobem, což znamená, že není třeba nic instalovat a můžete pouze použít závislost prostřednictvím požadovaného nástroje pro sestavení. Ale není to skutečné řešení pouze v paměti, a proto již nemůžeme mluvit o testech jednotek, protože testy jednotek se nesmí spoléhat na soubory nebo databáze



  1. Chyby:Příkaz INSERT EXEC nelze vnořit. a Nelze použít příkaz ROLLBACK v příkazu INSERT-EXEC. jak to vyřešit?

  2. Vraťte hledaná data ze sqlite

  3. Příklad replikace Oracle Streams krok za krokem

  4. Sloučit tabulku a protokol změn do zobrazení v PostgreSQL