У меня есть веб-сервис с пружинной загрузкой 2.0, который выполняет базовые операции crud над базой данных SQL. Чтобы проверить базу данных, я хочу использовать DBUnit. Мой тестовый класс имеет следующие аннотации:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@ActiveProfiles("dbunit")
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class,
DbUnitTestExecutionListener.class})
@DatabaseSetup("classpath:dbunit/myDataset.xml")
public class MyDbunitTest
В моем application.yml у меня есть следующая конфигурация:
...other properties...
---
spring:
profiles: dbunit
datasource:
platform: dbunit
url: jdbc:h2:mem:dbtest-local
hikari:
driver-class-name: org.h2.Driver
schema: classpath:dbunit/schema-dbunit.sql
Когда я запускаю тест, Spring запускается нормально, а активный профиль - dbunit. Не удается запустить пул соединений hikari, говоря, что он не может найти "classpath: dbunit / schema-dbunit.sql":
[ main]o.s.jdbc.datasource.DataSourceUtils : Fetching JDBC Connection from DataSource
[ main]com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
[ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
org.h2.jdbc.JdbcSQLException: Schema "classpath:dbunit/schema-dbunit.sql" not found [90079-196]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) ~[h2-1.4.196.jar:1.4.196]
at org.h2.message.DbException.get(DbException.java:179) ~[h2-1.4.196.jar:1.4.196]
at org.h2.message.DbException.get(DbException.java:155) ~[h2-1.4.196.jar:1.4.196]
at org.h2.engine.Database.getSchema(Database.java:1755) ~[h2-1.4.196.jar:1.4.196]
С весенней загрузкой 1.5, никогда не было проблем с поиском этого файла. Имя или местоположение файла не изменились при обновлении до весенней загрузки 2.0. Моя настройка проекта:
SRC
+Main
| + Java
| + Resources
+Test
+Java
| + MyDbunitTest.java
+Resources
+dbunit
| + schema-dbunit.sql
| + myDataset.xml
+ application.yml
+ bootstrap.yml
Мой файл находится в неверном месте или Hikari ожидает, что файл будет следовать соглашению об именовании? Нужно ли что-то изменить, чтобы добавить файл в путь к классам?