Мои интеграционные тесты выполнялись бы намного быстрее, если бы я использовал базу данных в памяти вместо PostgreSQL. Я использую JPA (Hibernate), и мне нужна база данных в памяти, которую было бы легко переключить на использование JPA, легко настроить и надежно. Он должен поддерживать JPA и Hibernate (или наоборот, если хотите) довольно широко, поскольку у меня нет желания использовать мой код доступа к данным для тестов.
Какая база данных является лучшим выбором с учетом приведенных выше требований?
Для интеграционного тестирования я сейчас использую H2 (от оригинального автора HSQLDB), который я предпочитаю HSQLDB. Он быстрее (а я хочу, чтобы мои тесты были как можно быстрее), у него есть несколько приятных функций, таких как режим совместимости, команда разработчиков очень отзывчива (в то время как HSQLDB оставался бездействующим в течение многих лет до самого последнего времени).
Я использовал HSQLDB в памяти для интеграционного тестирования сохраняемости JPA / Hibernate в Java. Запускается довольно быстро, не требует специальной настройки.
Единственная проблема, которую я видел до сих пор при использовании HSQLDB с Hibernate, была связана с размером пакета, который нужно было установить в 0, но это могло быть связано со старой версией. Я покопаюсь и посмотрю, смогу ли я найти подробности этой проблемы.
В настоящее время Derby поддерживает режим в памяти , он больше не считается экспериментальным.