java—当使用@contextconfiguration(loader=myloader.class)时,如何只使用一个spring测试上下文

evrscar2  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(324)

我需要控制测试上下文的创建。所以,为了我的测试课我设置了 @ContextConfiguration(loader=MyLoader.class) 哪里 MyLoader extends AnnotationConfigContextLoader . 问题是myloader的每个测试类示例都会被创建,而这个loader示例会创建新的上下文。所以,每个测试类都有一个新的上下文。然而,这不是我需要的。是否可以让spring测试在控制加载过程的同时为所有测试类只创建一个上下文?
为了清楚起见,我使用了loader,因为我需要动态地设置上下文配置类。我没找到办法:

  1. @ContextConfiguration(classProvider=ContextConfigClassProvider.class)//this is what I need
  2. public class FooServiceIT {
  3. @Test
  4. public void t() {
  5. System.out.println("TEST");
  6. }
  7. }

所以,我用加载器。

pxq42qpu

pxq42qpu1#

spring测试框架已经缓存了加载上下文的结果。缓存键由几个部分构成是很重要的(请参阅参考指南)。只要这些部分是相同的,它将使用已经加载的缓存,而不是重新加载。

相关问题