我有一个运行在SpringJUnit4ClassRunner
上的集成测试集合。我试图用maven surefire并行运行这些。但是,我注意到,在进入CacheAwareContextLoaderDelegate.loadContext()
中的同步块之前,代码被阻塞。与maven并行运行弹簧测试
有没有办法绕过这个缓存?我试过这样做,但似乎有更多的共享状态,而不仅仅是缓存本身,因为我的应用程序在Spring代码内死锁。或者可以通过某种方式使地图关键字而不是整个地图同步来使同步更加精细?
我对parallelising测试的动机是双重的:
- 在一些测试中,我用嘲笑取代豆。由于嘲笑本质上是有状态的,我必须使用
@DirtiesContext
为每个测试方法构建新的ApplicationContext。 - 在其他测试中,我只想部署Jersey资源的一个子集。为此,我指定了Spring配置类的一个子集。由于Spring使用
MergedContextConfiguration
作为上下文缓存中的关键字,因此这些测试将无法共享ApplicationContext。
我[为此提出了一个错误报告](https://jira.springsource。组织/浏览/ SPR-10536) – hertzsprung 2013-05-07 14:02:28