Встроенное приложение Кафки в микронавт не находит бобов - PullRequest
1 голос
/ 10 мая 2019

Я использую встроенный сервер Kafka в своем тесте, описанном здесь: https://micronaut -projects.github.io / micronaut-kafka / latest / guide / # kafkaEmbedded . Проблема в том, что я получаю io.micronaut.context.exceptions.BeanContextException: Error processing bean [Definition: org.app.messaging.TestConsumer] method definition [void receive(String msg)]: Failed to inject value for parameter [testService] of method [setTestService] of class: org.app.messaging.TestConsumer при запуске теста. Есть идеи как это исправить?

Вот как выглядит тест:

void "test run kafka embedded server"() {
    given:
    ApplicationContext applicationContext = ApplicationContext.run(
            Collections.singletonMap(
                    AbstractKafkaConfiguration.EMBEDDED, true
            )
    )

    when:
    AbstractKafkaConsumerConfiguration config = applicationContext.getBean(AbstractKafkaConsumerConfiguration)
    Properties props = config.getConfig()


    then:
    props[ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG] == 9091


    when:
    KafkaEmbedded kafkaEmbedded = applicationContext.getBean(KafkaEmbedded)

    then:
    kafkaEmbedded.kafkaServer.isPresent()
    kafkaEmbedded.zkPort.isPresent()

    cleanup:
    applicationContext.close()
}

1 Ответ

0 голосов
/ 11 мая 2019

Размещение теста в любом месте, кроме корневого пакета, похоже, вызывает множество проблем "определение bean-компонента не найдено".В фреймворке нет поддержки ComponentScan, поэтому единственное, что мне помогло, - это перенести тестовый файл в корневой пакет.Здесь есть несколько идей: https://github.com/micronaut-projects/micronaut-core/issues/511, если у вас возникают похожие проблемы с приложением CLI.Однако, это не сработало при использовании встроенного сервера и встроенной кафки.

...