org.dbunit.dataset.NoSuchTableException - PullRequest
       55

org.dbunit.dataset.NoSuchTableException

0 голосов
/ 04 марта 2020

Я использую:

  1. Пружинная загрузка 2.2.5
  2. Postgresql 9.6
  3. DBunit 2.5.3
  4. DB Rider 1.10 .0
  5. Тестовые контейнеры 1.12.5
  6. 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>
...