Java 如何对所有测试只初始化一次Spring applicationContext
我有一组基于spring的测试,需要spring上下文 为了快速执行测试,我想确保Spring上下文只初始化一次,然后所有测试都应该在这个上下文上运行,然后它应该关闭 我已经尝试了以下方法:Java 如何对所有测试只初始化一次Spring applicationContext,java,spring,junit4,spring-test,Java,Spring,Junit4,Spring Test,我有一组基于spring的测试,需要spring上下文 为了快速执行测试,我想确保Spring上下文只初始化一次,然后所有测试都应该在这个上下文上运行,然后它应该关闭 我已经尝试了以下方法: 使用@RunWith(SpringJUnit4ClassRunner.class)和@ContextConfiguration(MyAnnotatedConfig.class)初始化spring上下文 将@RunWith(SpringJUnit4ClassRunner.class)和@TestExecuti
@RunWith(SpringJUnit4ClassRunner.class)
和@ContextConfiguration(MyAnnotatedConfig.class)
初始化spring上下文@RunWith(SpringJUnit4ClassRunner.class)
和@TestExecutionListeners({MyTestExecutionListener.class})
与手写测试执行监听器一起使用,该监听器初始化spring上下文并将其注入到具体的测试类中@BeforeClass
侦听器来存储spring上下文,在关闭时使用@AfterClass
侦听器如果你在考虑上述问题后仍有经验,请考虑这说明你的问题。
干杯Sam使用@BoristeSpider是的,这可能是一个选项,尽管它不是我最喜欢的,因为它需要为我们编写的每个新测试增加额外的配置开销。您可以将
@RunWith
,@TestExecutionListeners
@ContextConfiguration注释放在基类上,这只会初始化上下文一次。@Jamey这是我尝试过的,对我不起作用:-(嗯,这对我来说绝对有效。这正是我为我们的测试所做的……我想不出为什么这不起作用。你用什么来运行测试?事实上,Boris很在行。我使用一个套件来运行我们的测试,所以我想这可以按照我的要求管理生命周期。:)谢谢Sam。Sumbitting演示项目当然是个好主意,因为问题似乎难以描述。我希望我能抽出时间来做这件事。