运行大量测试会导致Eclipse冻结,继续冻结等

时间:2011-02-01 14:08:28

标签: eclipse junit junit3

我注意到执行大多数Junit 3.x测试套件会导致Eclipse出现问题并导致锁定。即使我分配了大量的堆和烫发(1200米和400米),它也会嗡嗡作响,然后冻结然后继续,花费相当长的时间。如果我小批量地进行测试,那么事情相当快,冻结几乎不会发生。

我已经检查了测试运行时的内存使用情况,并且它们没有接近给定最大堆或perm的最大值,所以那些应该不是问题......

有没有人知道如何解决这个问题。

3 个答案:

答案 0 :(得分:3)

这可能已经是您尝试的但是......如果您将单元测试作为“JUnit插件测试”运行...那么您在eclispe.ini中的Xmx和MaxPermSize设置是无用的。

eclipse.ini设置允许您更改当前Eclipse的设置。从Eclipse生成的任何Eclipse实例仍将具有默认设置(类似于Xms40m和Xmx512m)。你还必须改变这些。

打开用于测试的启动配置(“运行&gt;运行配置...”,选择用于启动单元测试的启动配置)并转到“参数”选项卡。在“VM Arguments”文本区域中,像在eclipse.ini文件中一样输入新的内存设置(我使用-Xms256m -Xmx1536m -XX:MaxPermSize=256m作为最昂贵的测试套件......但您可能需要更多)。< / p>

主要问题可能是尝试修复单元测试的潜在内存泄漏。你确定tearDown()中没有更多的卸载/内存释放/ ...吗?在分析下运行测试可能会有所帮助(我们使用Yourkit java分析器来实现这一目的......但它不是免费的.JConsole可以帮助你,同时参见http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html)。

答案 1 :(得分:0)

不允许发表评论,因此在此处添加..您已经检查了内存,因此该选项已关闭

很少有其他事情要尝试:

我不确定,如果您尝试使用junit上的fork选项。

是否一次又一次地重建目标类?你能看到目标文件夹吗?

您是否尝试重新创建工作区?只是建议这个,因为你似乎已经涵盖了主要问题 - 记忆,记录等..

答案 2 :(得分:0)

程序中可能存在某种内存泄漏,只有在运行所有测试时才会出现。如果你在外部运行测试,你没有提到是否遇到同样的问题。

我建议在冻结时运行某种内存分析器。 MAT http://www.eclipse.org/mat/之类的东西在过去帮助了我。您还可以尝试运行多个jstack会话,以了解一段时间内发生的事情。