运行 JUnit 测试时,我似乎总是遇到此错误:

eclipse 内存不足错误:堆空间

我用 JConsole 监控了 Eclipse,堆内存峰值约为 150MB。我已将堆内存设置为 1GB。

启动 Eclipse 时我使用以下参数:

-vm "C:\Program Files\Java\jre1.5.0_08\bin\javaw.exe" -vmargs -Xmx1024M
-XX:MaxPermSize=128M -Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

有谁知道可能导致此问题的原因是什么?仅在运行 JUnit 测试时才会发生。

有帮助吗?

解决方案

JUnit测试在不同的虚拟机作为Eclipse IDE中运行。所以它是一个虚拟机是内存不足,而不是Eclipse的一个。结果 您可以更改测试的运行配置测试虚拟机的设置。点击 你去运行配置,然后根据参数,你可以设置VM参数。

其他提示

根据 @Thijs Wouters 的回复,为了在 eclipse 中解决这个问题,我执行了以下操作:

  • 在 JUnit 下添加了新的运行配置(运行>运行配置>JUnit>新建)
  • 在参数选项卡中,将 VM 参数设置为“-Xms64m -Xmx256m”或更高(如果需要)

您可能在你的JUnit测试内存泄漏。一个常见的问题是这样的:JUnit会创建一个TestCase类的新实例的在它的每一个测试方法的和所有的实例变量将围绕直到JUnit的终止保持。这意味着:如果你有一个与一个1MB对象图在安装程序50种初始化的测试方法和实例变量一个TestCase类()方法,则该TestCase类将需要50MB堆空间

修改以上只描述的问题在较旧版本的JUnit的存在,我认为它是固定在JUnit 4中

我刚刚发布的Eclipse插件,将自动设置堆大小JUnit的发射为您服务。您可以从 http://code.google.com/p/junitlaunchfixer/ 得到它它的工作原理用Eclipse Europa,木卫三和Galileo。

我找到了解决我的问题 - 它可以帮助别人;)当我增加堆大小,我越来越Eclipse应用程序的堆大小,不是我的节目(我通过月食执行)我该怎么办运行我的程序之前修改的执行的命令。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top