当前位置: 首页 > 面试题库 >

为什么只有在运行JUnit测试时堆空间才会用完?

孟彦
2023-03-14
问题内容

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

蚀outOfMemoryError:堆空间

我已经用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不同的vm中运行。因此,内存不足而不是Eclipse是vm。
您可以在测试的运行配置中更改测试虚拟机的设置。
您转到运行配置,然后在参数下设置vm参数。



 类似资料:
  • 如果我运行特定的场景,它都是绿色的。如果我只运行cucumber套件(又名。耙cucumber),它都是绿色的。但是,如果我运行完整的测试套件,(又名。耙),单个场景失败。 我假设这与数据库的状态和我的配置有关。我编写了cucumber场景以假设最初为空的数据库,并且我正在为各个场景构建小型数据集。 我正在使用DatabaseCleaner和截断策略,我的理解是,这将清除数据库。我弄错了吗?单元测

  • 在我的项目中,我有单元测试。我在用IntelliJ。每当我尝试运行它们时,IntelliJ都会显示一条消息: VM初始化时出错 无法为对象堆保留足够的空间 无法创建Java虚拟机。 我试着用VM参数

  • 我的maven项目有一些问题。我在我的maven文件夹src/test/java中创建了一些JUnit测试。 如果我在命令行或Eclipse IDE中使用“mvn清理安装”创建了我的maven项目,并使用“清理”和“安装”等运行配置,所有测试都将正常运行,不会发生一些错误。 但是,如果我手动运行 JUnit 测试,其中一个 Junit 测试将失败。但是什么原因,为什么maven没有意识到这个事实呢

  • 运行单个测试时引发错误: 通过点击方法名称旁边的绿色三角形按钮启动测试。 但是如果你通过maven(生命周期)对整个项目进行测试- 要使用JUnit,需要使用以下依赖项: 负责这个项目的其他团队成员(一个存储库,不同的分支)没有这样的问题。是什么导致了这个错误?使用了IDE-IntelliJ IDEA UPD:我什么都试过了。删除。idea文件夹没有效果,也没有重新下载所有依赖项。清除缓存也没有效

  • 问题内容: 也许我的问题是新手,但是我真的无法理解在什么情况下使用junit? 无论是编写简单的应用程序还是大型应用程序,我都使用语句对其进行测试,这对我来说很容易。 如果仍然需要调用相同的方法,检查它们返回的内容,然后又要为所有内容添加注释,那么为什么要使用JUnit创建测试类,在项目中创建不必要的文件夹呢? 为什么不编写一个类并立即对其进行测试而不创建Test-class? PS。我从未在刚刚

  • 问题内容: 我知道堆栈大小是固定的。因此,我们不能将大对象存储在堆栈上,而是转向动态分配(例如malloc)。另外,在函数调用嵌套时会使用堆栈,因此我们也避免使用递归函数。在运行时是否有任何方法可以确定到目前为止已使用了多少堆栈内存,还剩下多少? 在这里,我假设Linux环境(gcc编译器)具有x86体系结构。 问题答案: 只需阅读%esp,并记住其值就会下降。您已经从环境中知道了默认的最大大小,