Тестирование интеграции Spring с Testcontainer - база данных запускается после приложения - PullRequest
0 голосов
/ 04 августа 2020

Мое приложение, тестируемое с помощью spring (core), хочет подключиться к базе данных с помощью testcontainer, но на этом этапе testcontainer не запущен. Как я могу добиться, чтобы testcontainer был готов, а затем весь контекст запускался?

 import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;
 import org.testcontainers.containers.PostgreSQLContainer;
 import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;

@Testcontainers
@SpringJUnitWebConfig(locations = {"classpath:it-context.xml"})
public class IntegrationTest {


    @Container
    private PostgreSQLContainer postgresqlContainer = new PostgreSQLContainer();

    @Autowired
    private StatusBean status;

    @Test
    public void appStartedSuccessful(){
        // app & database successful started and connected
        System.out.println(postgresqlContainer.getJdbcUrl());
        System.out.println(postgresqlContainer.getTestQueryString());
        System.out.println(status.getStartupTimestamp());
    }

}

1 Ответ

0 голосов
/ 11 августа 2020

Вероятно, вы захотите подождать, пока контейнеры запустятся и будут готовы

См. Документацию , хотя код , кажется, указывает, что контейнер должен ждать записи журнала magi c, возможно, это не работает для вас по какой-то причине.

Если вы Thread.sleep в вашем методе тестирования, работает ли контейнер Pg наконец прибыть, как ожидалось? Что-либо в журналах контейнера, указывающее на какой-либо сбой (маловероятно, учитывая, что уловка static сработала для вас).

Я не вижу ничего в документах интеграции JUnit5 to указать любое ручное ожидание, необходимое при использовании @Container.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...