【问题标题】:Application context is reloaded for every Spock specification when using EmbeddedKafka使用 EmbeddedKafka 时为每个 Spock 规范重新加载应用程序上下文
【发布时间】:2019-07-24 12:50:41
【问题描述】:

我有一个带有集成测试设置的 Spring Boot 应用程序。我有一个基本的 groovy 类,我在每个规范中都进行了扩展。 Spring Boot 2.0.6 版 我的问题是每个规范都会重新启动应用程序上下文。

我将不胜感激这方面的任何帮助。 谢谢。

人们在使用 DirtiesContext 或 MockBean 时似乎会遇到这个问题。我也没有。

这就是基地的样子

@SpringBootTest(classes = [Application],
                webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("spring-boot-test")
class SpringBootTestBase extends Specification {
...
}

我希望我的所有测试都使用相同的上下文。

【问题讨论】:

  • 感谢您的代码 sn-p,但这并不是特别有用。请提供MCVE,我可以构建和运行以重现您的问题。我很容易answered another question(与你的无关,只是一个例子)如果没有 MCVE,答案是不可能的。我用了之后就没有问题了。因此,准备 MCVE 有助于您获得所需的帮助。
  • 嗨。感谢您的回复。我实际上只是想出了什么问题。我正在使用 EmbeddedKafka,它会根据每个规范重新创建,因此会重新加载上下文
  • 好的,我在您的问题中添加了 embedded-kafka 标签并更新了标题/主题。

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


【解决方案1】:

问题出在 EmbeddedKafka。它被重新创建并重新加载上下文。 使用这个https://github.com/spring-projects/spring-kafka/blob/master/src/reference/asciidoc/testing.adoc#using-the-same-brokers-for-multiple-test-classes 可以解决这个问题。

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2014-05-14
    • 2015-05-25
    相关资源
    最近更新 更多