@DataJpaTest игнорирует конфигурацию `spring.datasource.url`.Как исправить? - PullRequest
0 голосов
/ 13 февраля 2019

У меня были проблемы с @DataJpaTest, потому что таблицы не могли быть созданы из-за отсутствия схемы [1].Поэтому я подумал, что могу обмануть Spring, создав схему в строке подключения, как в:

application.properties

spring.datasource.url=jdbc:h2:mem:SCH;MODE=Oracle;DB_CLOSE_DELAY=-1;INIT=create schema if not exists SCH
spring.datasource.username=test
spring.datasource.password=test

, однако, как ни странно, это не помогло.Почему?

быстрый просмотр выдержки из журнала испытаний:

2019-02-13 17:48:12.735  INFO [CCH,,,] 28586 --- [           main] o.s.j.d.e.EmbeddedDatabaseFactory        : Starting embedded database: url='jdbc:h2:mem:11247702-6bc4-44b9-be65-9639ebb8d695;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', username='sa'

хорошо, потому что @DataJpaTest игнорирует источник данных, настроенный в application.properties, и скорее использует автоматически настроенную базу данных h2

Я обнаружил, что могу использовать @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE), но это тоже не работает и не работает с Unknown host specified.Какой хост ???

Итак, есть идеи, как заставить @DataJpaTest использовать настроенный источник данных?

[1] Используя @DataJpaTest, я не могу заставить h2 создать схему

1 Ответ

0 голосов
/ 14 февраля 2019

Прошу прощения, это была моя ошибка в конфигурации проекта / тестов.

Чтобы дать какой-то ответ: По умолчанию @DataJpaTest использует встроенную базу данных h2 и игнорирует строку подключения, объявленную в application.properties.Аннотация @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) отключает это поведение, и база данных, настроенная в application.properties, будет использоваться @DataJpaTest test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...