Как отключить Кафку в тесте Quarkus? - PullRequest
2 голосов
/ 02 апреля 2020

Мое приложение использует Kafka и Hibernate. Для Кафки требуется бегущее docker изображение. Если я запускаю тест Quarkus для Hibernate, он не выполняется, если Kafka не запущен. В моей среде IDE это не проблема, но в Jenkins нет сервера Kafka, и тест не пройден, поскольку он не может разрешить сервер Kafka.

Можно ли отключить Kafka в тестах Quarkus?

1 Ответ

3 голосов
/ 03 апреля 2020

Вы можете использовать Microprofile Emitter для отправки сообщений на канал Kafka:

@Inject 
@Channel("hello")
Emitter<String> emitter;

По умолчанию, если позади этого излучателя нет Kafka, он создаст сообщение в памяти автобус. Таким образом, образ docker для Kafka не потребуется.

Другим решением будет использование KafkaContainer из TestContainers для создания одноразового контейнера Kafka для каждого запуска теста.

Вы можете проверить оба примера в репозитории Алексея Сото .
Посмотрите на класс CheckoutProcess и соответствующий тест компонентов и тест интеграции.

...