sql >> Base de Datos >  >> RDS >> Mysql

¿Hay alguna manera de ejecutar MySQL en memoria para casos de prueba JUnit?

La forma más fácil de usar una base de datos en memoria que sea totalmente compatible con MySQL y se pueda usar dentro de los casos de prueba de JUnit es, en mi humilde opinión, MariaDB4j. Solo necesita una dependencia de Gradle (/ Maven) (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) y unas pocas líneas de código para empezar:

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

se puede incluir un script de inicio a través de

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

Más información sobre el archivo Léame de GitHub:https://github.com/vorburger/MariaDB4j

EDITAR:He agregado algunos consejos a esta respuesta:MariaDB4j parece agregar archivos en la carpeta temporal del sistema. Por lo tanto, funcionará de forma integrada, lo que significa que no es necesario instalar nada y solo puede usar la dependencia a través de la herramienta de compilación que desee. Pero no es una verdadera solución solo en memoria y, por lo tanto, ya no podemos hablar de pruebas unitarias porque las pruebas unitarias no deben depender de archivos o bases de datos