我有一个使用 Spring Boot 框架构建的 Spring Rest 应用程序。现在在编写 Spring 集成测试时,我想排除一个类,使其不被扫描组件。我的这个类包含 Apache Kafka 的依赖项。如果此类在容器启动时加载,它将开始寻找 Kafka 运行实例。
所以在运行集成测试时我不会启动我的 Kafka 服务器,所以我想运行集成测试使 Kafka 关闭。
任何帮助表示赞赏。
我有一个使用 Spring Boot 框架构建的 Spring Rest 应用程序。现在在编写 Spring 集成测试时,我想排除一个类,使其不被扫描组件。我的这个类包含 Apache Kafka 的依赖项。如果此类在容器启动时加载,它将开始寻找 Kafka 运行实例。
所以在运行集成测试时我不会启动我的 Kafka 服务器,所以我想运行集成测试使 Kafka 关闭。
任何帮助表示赞赏。
您可以从测试配置中排除 cafka 配置。你还没有分享你的代码,但它会是这样的
@SpringBootApplication(exclude = CafkaConfiguration.class)
public class IntegrationTestConfig {
}
另一方面,您可以肯定地嘲笑卡夫卡
最简单的方法是使用配置文件。在您只想对集成测试可见的 bean 中添加:
@Profile("integration=test")
在集成测试的顶部,激活配置文件:
@ActiveProfile("integration-test")
任何未指定配置文件的 bean(所有其他 bean)都将出现在测试和默认配置文件中。如果没有给出,默认是配置文件的名称。