Итак, я использую экземпляр 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");
}
}