Как внедрить или имитировать kafka в многомодульном проекте Spring Интеграционные тесты

Уважаемые, мне нужно добавить несколько интеграционных тестов ко многим ресурсам в проекте, над которым мы работаем и который использует Kafka, но до сих пор мне не удалось запустить только один экземпляр Embedded Kafka при выполнении всех тестов или смоделировать всю часть Kafka, чтобы сосредоточиться тестирует только наш код, полагая, что с интеграцией все будет в порядке.

Итак, у меня есть несколько вопросов:

  1. Каков правильный/предпочтительный способ установки этих тестов? Издеваться над частью Кафки или встроить экземпляр?
  2. Как я могу встроить его и поделиться этим экземпляром между всеми тестами, чтобы экземпляр не удалялся и не создавался заново без необходимости?
  3. Как издеваться над всей частью кафки, имитирующей ее, работает нормально? Чтобы я мог сфокусировать тест на нашем коде, а не на других аспектах?

Спасибо большое.


Что я уже пробовал:

  • Аннотируйте тесты, которым нужна 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.


Другие детали:

  • 5 июня
  • Грейдл

Вы пробовали эта техника? Я не знаю о таких проблемах. Если вы можете опубликовать простой проект, который демонстрирует поведение, мы можем посмотреть.

Gary Russell 12.03.2019 23:29

Я также столкнулся с этой же проблемой, кто-нибудь знает ответ?

Bharathiraja S 11.04.2019 12:44

Если вы используете докер, обязательно взгляните на библиотека testcontainrs. Я еще не пробовал их с Kafka, но для разных баз данных работает отлично. Точно так же вы можете просто раскрутить локальную Кафку с помощью этого образа докера и управлять им самостоятельно.

Артём zэ Капитан 21.10.2020 18:30
0
3
766
0

Другие вопросы по теме