一些春季junit测试不会回滚。因为内存不足错误?

时间:2014-11-19 18:38:02

标签: java spring unit-testing oracle11g junit4

我有超过5000个Spring单元测试,我知道每个测试都适用于Oracle DB,并进行回滚,因为我已经单独测试了每一个。当我运行maven测试套件时,我最终出现内存不足错误,发现一些测试没有回滚。我通过在我的pom.xml中添加argLine参数修复了内存不足错误,并且它不再发生了。但我仍在试图弄清楚内存不足导致回滚失败?或者它可能是别的吗?如果内存不足是罪魁祸首,那么在代码中处理/解决这个问题的最佳方法是什么?感谢。

1 个答案:

答案 0 :(得分:0)

  

内存不足错误会导致回滚失败吗?或者它可能是别的什么?

jvm在遇到OutOfMemory错误后无法执行任何操作。自Spring开始数据库事务以来,它应该是需要调用transaction.rollback()的人。由于您的maven测试套件遇到OutOfMemory错误,因此永远不会调用回滚,这应该是根本原因。

  

如果内存不足是罪魁祸首,那么解决这个问题的最佳方法是什么?

增加jvm堆大小可能有所帮助。

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

E.g。

java -Xmx256m TestData.java

This可能是你在maven中的表现方式。