java - Spring Kafka 应用程序的应用程序负载测试期间未找到主题错误

标签 java spring-boot spring-test spring-kafka

我在使用 Spring Boot 1.5.8 开发的应用程序中使用 Spring Kafka 1.2.3。与许多 Spring 应用程序一样,我有一个测试试图验证 Spring 所做的组件解析的配置。测试类似于以下内容。

@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTest {
    @Test
    public void loadContext() throws Exception {}
}

问题是我也在我的应用程序中使用 Kafka Streams。据我所知,Kafka Streams 要求在应用程序启动之前创建所有用户主题

事实上,我在执行上述测试时遇到了错误。有一个专用的 @Configuration 文件,其中包含流定义。

org.apache.kafka.streams.errors.TopologyBuilderException: Invalid topology building: stream-thread [StreamThread-1] Topic not found: asd

如何克服这个问题?在这个简单的测试中我是否被迫使用嵌入式Kafka?有什么解决办法吗?

非常感谢。

最佳答案

如果您可以升级到 1.3.2,则可以使用 KafkaAdmin 创建主题。

Documentation here .

但是,通常最好使用嵌入式代理进行测试 - 否则,如果代理不可用,您的测试将失败。对于 CI 构建来说,这尤其是一个问题。

关于java - Spring Kafka 应用程序的应用程序负载测试期间未找到主题错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298748/

相关文章:

java - 井字游戏

java - (业余程序员)自定义HashMap大小总是比预期小1?

java - Spring Boot在Controller中调用Rest API时出现404错误

java - 如何让 WebTestClient 注销所有请求

junit - 如何使用具有多个 URL 的 MockRestServiceServer?

JavaFX:应用程序启动方法 java.lang.reflect.InvocationTargetException 中的异常

java - 如何在 block 语句中使用 jooq 调用过程

mysql - spring boot 在应用程序属性中使用占位符

java - Spring Boot 安全性允许除一个端点之外的所有端点

spring - 如何编写多个测试的 Spring 测试套件并运行选择性测试?