使用 EmbeddedKafka 时,为每个 Spock 规范重新加载应用程序上下文

Application context is reloaded for every Spock specification when using EmbeddedKafka

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

如有任何帮助,我将不胜感激。 谢谢

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

这是基地的样子

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

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

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