Mysql
 sql >> Base de données >  >> RDS >> Mysql

Existe-t-il un moyen d'exécuter MySQL en mémoire pour les cas de test JUnit ?

Le moyen le plus simple d'utiliser une base de données en mémoire entièrement compatible avec MySQL et pouvant être utilisée dans les cas de test JUnit est à mon humble avis MariaDB4j. Vous avez juste besoin d'une dépendance Gradle (/Maven) (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) et quelques lignes de code pour commencer :

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

un script de démarrage peut être inclus via

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

Plus d'informations sur GitHub readme :https://github.com/vorburger/MariaDB4j

EDIT :J'ai ajouté quelques indices à cette réponse :le MariaDB4j semble ajouter des fichiers dans le dossier temporaire du système. Cela fonctionnera donc de manière intégrée, ce qui signifie qu'il n'est pas nécessaire d'installer quoi que ce soit et que vous pouvez simplement utiliser la dépendance via l'outil de construction souhaité. Mais ce n'est pas une véritable solution en mémoire uniquement et nous ne pouvons donc plus parler de tests unitaires car les tests unitaires ne doivent pas reposer sur des fichiers ou des bases de données