Модульный тест Spring 2.0 с использованием dbunit и hikari - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть веб-сервис с пружинной загрузкой 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 ожидает, что файл будет следовать соглашению об именовании? Нужно ли что-то изменить, чтобы добавить файл в путь к классам?

...