Уважаемые, мне нужно добавить несколько интеграционных тестов ко многим ресурсам в проекте, над которым мы работаем и который использует Kafka, но до сих пор мне не удалось запустить только один экземпляр Embedded Kafka при выполнении всех тестов или смоделировать всю часть Kafka, чтобы сосредоточиться тестирует только наш код, полагая, что с интеграцией все будет в порядке.
Итак, у меня есть несколько вопросов:
Спасибо большое.
Что я уже пробовал:
Аннотируйте тесты, которым нужна kafka, с помощью @EmbeddedKafka — это работает, но генерирует случайную ошибку, потому что в некоторых случаях экземпляр отбрасывается, и это приводит к тому, что некоторые FileNotFound для других экземпляров
Создайте класс с @EmbeddedKafka и сделайте тесты, использующие расширения kafka из этого класса — результат аналогичен описанному выше подходу.
Попытка издеваться над KafkaClient - все еще отсутствует какой-либо компонент или деталь - в результате:
Caused by: org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is java.lang.IllegalStateException: No group.id found in consumer config, container properties, or @KafkaListener annotation; a group.id is required when group management is used.
Другие детали:
Я также столкнулся с этой же проблемой, кто-нибудь знает ответ?
Если вы используете докер, обязательно взгляните на библиотека testcontainrs. Я еще не пробовал их с Kafka, но для разных баз данных работает отлично. Точно так же вы можете просто раскрутить локальную Кафку с помощью этого образа докера и управлять им самостоятельно.
Вы пробовали эта техника? Я не знаю о таких проблемах. Если вы можете опубликовать простой проект, который демонстрирует поведение, мы можем посмотреть.