Я использую:
- Пружинная загрузка 2.2.5
- Postgresql 9.6
- DBunit 2.5.3
- DB Rider 1.10 .0
- Тестовые контейнеры 1.12.5
- Liquibase
У меня Caused by: org.dbunit.dataset.NoSuchTableException: The table 'TRAVELER' does not exist in schema 'null'
исключение при тестовом запуске
Моя конфигурация для источника данных :
spring:
datasource:
url: jdbc:tc:postgresql:9.6.8:///databasename?TC_INITSCRIPT=init_db.sql
driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
liquibase:
change-log: classpath:db/changelog/changelog.xml
default-schema: test
jpa:
properties:
hibernate:
default_schema: test
Я использую скрипт для создания и установки схемы по умолчанию
create schema if not exists test;
SET search_path TO test;
Мой тестовый класс:
@DBRider
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class TravelApplicationTests {
@LocalServerPort
private int port;
@DataSet(cleanBefore = true, cleanAfter = true, skipCleaningFor = {"databasechangelog", "databasechangeloglock"}, value = "dataset/traveler.xml")
@Test
void findTravelerById() {
given()
.port(port)
.contentType(ContentType.JSON)
.get("/traveler/{id}", 1)
.then()
.statusCode(200)
.contentType(ContentType.JSON)
.body("id", equalTo(1))
.body("name", equalTo("Kate"));
}
}
набор данных / путешественник. xml файл
<dataset>
<TRAVELER name="Kate" />
</dataset>