【问题标题】:Embedded Spring Kafka attempting to start Runtime Kafka嵌入式 Spring Kafka 尝试启动运行时 Kafka
【发布时间】:2019-11-11 17:34:35
【问题描述】:

我有一个 Spring Kafka 项目,我已经为它编写了一些单元测试。 当我执行测试类时,项目会尝试使用实际的 Kafka 代理,而不是我的测试类中注释的嵌入式 Kafka 代理。

@RunWith(SpringRunner.class)
@SpringBootTest
@EmbeddedKafka
@DirtiesContext
public class SpringKafkaReceiverTest {...}

我尝试过的内容已检查到 gitlab --> https://gitlab.com/mohammad.mnajar/spring-kafka-unit-test

任何帮助将不胜感激。

【问题讨论】:

    标签: java junit spring-kafka spring-kafka-test


    【解决方案1】:

    the documentation

    您需要将spring.kafka.bootstrap-servers属性设置为嵌入式kafka的getBrokersAsString()

    【讨论】:

    • 看起来你在test/application.yml 中有它,但它被注释掉了(虽然没有spring 前缀...):gitlab.com/mohammad.mnajar/spring-kafka-unit-test/blob/master/…。客户端不关心在哪里连接。它只是使用环境中的 bootstrap-server 属性。在测试的情况下,您需要覆盖它。就是这样。
    • 不确定它是如何被注释掉的。我取消了该块的注释,但仍然看到相同的行为。 repo 中的代码已更新。
    • 尽管我的.yml 文件中有引导服务器道具,但我在代码中明确添加了道具System.setProperty("spring.kafka.bootstrap-servers", embeddedKafkaRule.getEmbeddedKafka().getBrokersAsString())。还是没有运气。
    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2021-01-15
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多