单元测试 – Spring Framework – 单元测试设计

我正在编写尝试并开始讨论Spring Unit测试,特别是Transactional单元测试.

我们目前在各种类中注释了大约441个测试,如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration
@ContextConfiguration(locations={"/context/ServiceTest-context.xml"}, inheritLocations=false)
public class ServiceTests extends AbstractTransactionalJUnit4SpringContextTests {

    @Test
    public void testSomething() {}

    @Test
    public void testSomethingElse() {}
}

我们的每个测试类都有自己的测试上下文.

我们面临的问题是,当我们运行单个测试类或单个包时,测试运行正常.

但是,当我们想通过使用maven或类似的东西(如Hudson集成)来扩展它以运行所有我们的测试(当前> 400).

mvn test

我们达到了一个点,然后开始体验Java GC Limit超出错误.

现在我觉得这取决于我们的测试计划设计,而不是我们需要提高内存限制或关闭警告.

任何人都可以分享他们的经验以及他们解决类似问题的方式吗?

Eggsy

最佳答案
我非常确定容器将在其生命周期的持续时间内保持所有上下文,除非您明确调用appCtx.close()

是否有某些特殊原因导致每个测试都有自己的背景?因为除非你有特殊的理由这样做….我会说,不要这样做.只要您有适当的设置和拆卸方法,您就应该能够共享.即使您将类似的测试组合在一起并且只具有这些共享上下文.更多信息请!

转载注明原文:单元测试 – Spring Framework – 单元测试设计 - 代码日志