我的应用程序使用Kafka和Hibernate。对于Kafka,需要运行一个docker镜像。如果我为Hibernate运行Quarkus测试,则如果Kafka未运行,则测试会失败。在我的IDE中,这不是问题,但在Jenkins中没有Kafka服务器可用,因此测试失败,因为它无法解析Kafka服务器。
是否可以在Quarkus测试中禁用Kafka?
我的应用程序使用Kafka和Hibernate。对于Kafka,需要运行一个docker镜像。如果我为Hibernate运行Quarkus测试,则如果Kafka未运行,则测试会失败。在我的IDE中,这不是问题,但在Jenkins中没有Kafka服务器可用,因此测试失败,因为它无法解析Kafka服务器。
是否可以在Quarkus测试中禁用Kafka?
Emitter
来向 Kafka 频道发送消息:@Inject
@Channel("hello")
Emitter<String> emitter;
默认情况下,如果Emitter后面没有Kafka,则会创建一个内存中的消息总线。因此,不需要Kafka的Docker镜像。
另一种解决方案是使用TestContainers中的KafkaContainer
为每次测试运行创建一个一次性的Kafka容器。
您可以在Alex Soto的存储库中检查这两个示例。
请查看CheckoutProcess
类及其相应的组件测试和集成测试。