【问题标题】:Exclude a particular class from Spring Component scan Integration Test从 Spring 组件扫描集成测试中排除特定类
【发布时间】:2017-07-03 17:00:39
【问题描述】:

我有一个使用 Spring Boot 框架构建的 Spring Rest 应用程序。 现在在编写 Spring Integration Test 时,我想排除一个类 从被扫描组件。我的这个类包含 Apache Kafka 的依赖项。 如果这个类在容器启动时加载,它会开始寻找 Kafka 运行实例。

所以在运行集成测试时我不会启动我的 Kafka 服务器,所以我想运行 使 Kafka 关闭的集成测试。

感谢任何帮助。

【问题讨论】:

标签: spring spring-boot spring-test spring-kafka


【解决方案1】:

您可以从测试配置中排除 cafka 配置。你还没有分享你的代码,但它会是这样的

@SpringBootApplication(exclude = CafkaConfiguration.class)
public class IntegrationTestConfig { 
}

另一方面,您肯定可以模拟 kafka

How can I instanciate a Mock Kafka Topic for junit tests?

【讨论】:

【解决方案2】:

最简单的方法是使用配置文件。在您只想对集成测试可见的 bean 中添加:

@Profile("integration=test")

在集成测试的顶部,激活配置文件:

@ActiveProfile("integration-test")

任何未指定配置文件的 bean(所有其他 bean)都将出现在测试和默认配置文件中。如果没有给出,默认是配置文件的名称。

猜你喜欢
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
相关资源
最近更新 更多