@SqlGroup не создает таблицу на PostgreSQL TestContainer - PullRequest
0 голосов
/ 19 марта 2020

Итак, я использую экземпляр TestContainers с PostgreSQL для проведения тестов интеграции моей базы данных. Что происходит, так это то, что я могу успешно создать экземпляр этого контейнера с Postgres, однако я получаю это сообщение: org. postgresql .util.PSQLException: ОШИБКА: отношение "TABLE_NAME" не существует

Сейчас я думаю, что @SqlGroup, которая должна выполняться перед каждым тестом, не выполняется должным образом, однако об этой topi c не выдается сообщение об ошибке. Кроме того, обе create-таблицы. sql и clean-database. sql находятся в каталоге ресурсов в том же модуле, что и тест.

Мой код выглядит следующим образом:

@SqlGroup({
        @Sql(value = "/database/create-tables.sql", executionPhase = BEFORE_TEST_METHOD),
        @Sql(value = "/database/clean-database.sql", executionPhase = AFTER_TEST_METHOD)
})
public class PostgreSQLContainerTest {

    @ClassRule
    public static PostgreSQLContainer postgresSQL = new PostgreSQLContainer();

    @Test
    public void shouldRetrieveItemFromDatabase() throws SQLException {
        Connection conn = DriverManager.getConnection(
                postgresSQL.getJdbcUrl(),
                postgresSQL.getUsername(),
                postgresSQL.getPassword()
        );

        ResultSet resultSet = conn.createStatement().executeQuery("simple select query");
        resultSet.next();

        String result = resultSet.getString("column_name");
        assertThat(result).isEqualTo("expected_result");
    }
}
...