Spring Boot测试类能否重用应用程序上下文以加快测试运行速度?

时间:2017-05-25 12:38:45

标签: java spring spring-boot dependency-injection spring-test

@ContextConfiguration位置属性对Spring Boot集成测试没有意义。是否有其他方法可以在使用@SpringBootTest注释的多个测试类中重用应用程序上下文?

3 个答案:

答案 0 :(得分:11)

是。 BigInteger。链接指向Spring Framework文档,Spring Boot使用它。

BTW,默认情况下也会重复使用上下文。

答案 1 :(得分:4)

对于像我这样从Google登陆的人:

如果您的Maven surefire插件中包含<reuseFork>false</reuseFork>,那么您就无法重用您的上下文,因为您可以为每个测试类有效地产生一个新的JVM。

Spring文档中对此进行了详细记录:https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#testcontext-ctx-management-caching

答案 2 :(得分:3)

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)

上面的注释表示加载完整的上下文,并且在测试中使用相同的上下文。这意味着它只加载了一次。

Spring Boot提供@SpringBootTest注释,当您需要Spring Boot功能时,它可用作标准spring-test @ContextConfiguration注释的替代方法。注释通过SpringApplication

创建测试中使用的ApplicationContext来工作