Как запустить тестовый контейнер kafka до инициализации @ContextConfiguration? - PullRequest
2 голосов
/ 22 октября 2019

Я хотел бы запустить тестовый контейнер kafka и получить его серверы начальной загрузки:

@SpringBootTest
@ContextConfiguration(classes = {TestConfig.class, MyApplication.class}, initializers = MyIntegrationTest.Initializer.class)
@Testcontainers
public class MyIntegrationTest {

    @Container
    private static final KafkaContainer KAFKA = new KafkaContainer();

static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {

    @Override
    public void initialize(@NotNull ConfigurableApplicationContext configurableApplicationContext) {
        TestPropertyValues values = TestPropertyValues.of(
            "spring.kafka.consumer.bootstrap-servers=" + KAFKA.getBootstrapServers(),
            "spring.producer.bootstrap-servers=" + KAFKA.getBootstrapServers()
        );
        values.applyTo(configurableApplicationContext);
    }
}

К сожалению, я получаю:

java.lang.IllegalStateException: You should start Kafka container first
at org.testcontainers.containers.KafkaContainer.getBootstrapServers(KafkaContainer.java:65) ~[kafka-1.12.2.jar:na]

1 Ответ

1 голос
/ 22 октября 2019

Единственная проблема заключается в том, что для вызова start() метода после вызова объекта

private static void startKafkaContainer() {

        KafkaContainer kafkaContainer = new KafkaContainer();
        kafkaContainer.start();

    }

Дополнительная информация, проверьте хранилище , пожалуйста.

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