java - 使用@ContextConfiguration(loader=MyLoader.class) 时如何只使用一个spring测试上下文
问题描述
我需要控制测试上下文的创建。因此,对于我的测试课程,我设置@ContextConfiguration(loader=MyLoader.class)
了 where MyLoader extends AnnotationConfigContextLoader
。问题是,对于 MyLoader 的每个测试类实例都会创建,并且加载器实例会创建新的上下文。所以,我为每个测试类都有了一个新的上下文。然而,这不是我需要的。是否可以让 spring-test 在控制加载过程的同时为所有测试类只创建一个上下文?
为了清楚起见,我使用 loader 因为我需要动态设置上下文配置类。我没有找到办法:
@ContextConfiguration(classProvider=ContextConfigClassProvider.class)//this is what I need
public class FooServiceIT {
@Test
public void t() {
System.out.println("TEST");
}
}
所以,我使用装载机。
解决方案
Spring Test 框架已经缓存了加载上下文的结果。重要的是缓存键由几个部分构成(请参阅参考指南)。只要这些部分相同,它就会使用已经加载的缓存并且不会再次重新加载。
推荐阅读
- git - 如何从多个远程仓库覆盖本地仓库?
- javascript - post() 中的 jQuery 函数不选择父函数的元素
- javascript - 如何将从网络摄像头捕获的图像保存到文件夹
- database - Postgres 似乎在一段时间后不断关闭
- laravel - 错误:使用 guzzle 时,htmlspecialchars() 期望参数 1 为字符串
- excel - How to remove cursor from Textbox (in a progress bar)?
- c++ - 为什么ofstream作为类成员不能传递给线程?
- google-photos - 是否可以将 Google Drive 中的相册添加到 Google Photos?
- javascript - 检查 observable 是否完整
- c++ - 如果函数被称为 constexpr,则有条件地 static_assert