Как можно использовать базу данных H2 в памяти при тестировании моего приложения Quarkus?

Я планирую использовать PostgreSQL в качестве базы данных для моего приложения Quarkus, но мне бы хотелось, чтобы в моих тестах было удобно использовать H2.

Есть ли способ совершить такой подвиг?


person geoand    schedule 08.03.2019    source источник


Ответы (1)


Quarkus предоставляет H2DatabaseTestResource, который запускает базу данных H2 в памяти как часть процесса тестирования.

Вам нужно будет добавить io.quarkus:quarkus-test-h2 как зависимость с test областью действия и аннотировать свой тест с помощью @QuarkusTestResource(H2DatabaseTestResource.class). Вам также понадобится что-то вроде:

quarkus.datasource.url=jdbc:h2:tcp://localhost/mem:test
quarkus.datasource.driver=org.h2.Driver

in src/test/resources/application.properties

Чтобы приложение использовало PostgreSQL как часть своего обычного запуска, quarkus-jdbc-postgresql должен быть зависимостью и

quarkus.datasource.url=jdbc:postgresql://mypostgres:5432
quarkus.datasource.driver=org.postgresql.Driver

должен быть установлен в src/main/resources/application.properties

Обновить

Начиная с версии 1.13, Quarkus может автоматически запускать H2 в режиме разработки и тестирования, когда quarkus-jdbc-h2 находится в пути к классам и не указана конфигурация URL. Дополнительную информацию см. В this.

person geoand    schedule 08.03.2019
comment
Я попытался использовать этот подход в своем образце, но безуспешно. Сообщается о тайм-ауте соединения. stackoverflow.com/questions/57900569/ - person Hantsy; 12.09.2019