如何在 Spring Boot 测试中禁用`@EnableKafka`?

pix*_*xel 1 java spring spring-boot spring-kafka spring-boot-test

我想运行我的集成测试,但我不知道如何禁用@EnableKafka.

我的应用程序看起来像这样:

@SpringBootApplication
@EnableKafka
public class MyApplication {
Run Code Online (Sandbox Code Playgroud)

Hat*_*ice 9

您可以为 Kafka 配置创建另一个配置文件。

@ConditionalOnProperty("kafka.enabled")
@EnableKafka
@Configuration
public class KafkaConfiguration { }
Run Code Online (Sandbox Code Playgroud)

像这样,然后您可以在 test.properties 文件中禁用此属性。

检查这个解决方案


Art*_*lan 6

Spring Boot 带有 Spring Kafka 的自动配置,因此您不需要使用显式的@EnableKafka. 您在测试中需要做的只是 exclude KafkaAutoConfiguration

@SpringBootTest("spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration")
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以使用以下 Spring 注解禁用 Kafka 的自动配置:

@EnableAutoConfiguration(exclude = {KafkaAutoConfiguration.class})