Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли начин да стартирате MySQL в паметта за тестови случаи на JUnit?

Най-лесният начин за използване на база данни в паметта, която е напълно съвместима с MySQL и може да се използва в JUnit тестови случаи е imho MariaDB4j. просто се нуждаете от зависимост от Gradle (/Maven) (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) и няколко реда код за начало:

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

скрипт за стартиране може да бъде включен чрез

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

Повече информация за GitHub readme:https://github.com/vorburger/MariaDB4j

РЕДАКТИРАНЕ:Имам да добавя някои съвети към този отговор:MariaDB4j изглежда добавя файлове във временната папка на системата. Така че ще работи по вграден начин, което означава, че няма нужда да инсталирате нищо и можете просто да използвате зависимостта чрез желания от вас инструмент за изграждане. Но това не е истинско решение само в паметта и следователно вече не можем да говорим за модулни тестове, защото модулните тестове не трябва да разчитат на файлове или бази данни



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. използвайки (-) тире в името на таблицата на mysql

  2. Не мога да се свържа с локален MySQL сървър чрез сокет '/tmp/mysql.sock

  3. Поправяне на счупено UTF-8 кодиране

  4. Как да променя MySQL колона, за да разреша NULL?

  5. Как да сравните производителността на MySQL с помощта на SysBench