在我的项目中,我有单元测试。我正在使用IntelliJ。每当我尝试运行它们时,IntelliJ都会显示消息:
VM初始化期间发生错误
无法为对象堆保留足够的空间
无法创建Java虚拟机。
我尝试使用VM参数Run Configuration -> VM options: -Xms256m -Xmx512m
运行这些测试
我已经阅读了很多关于这个问题(和提出的解决方案),尝试了很多组合,但没有一个工作。我变得沮丧,并认为我的测试“太复杂”(模拟和类似的东西......),所以我写了样本测试:
public class TestClass {
@Test
public void test() {
assertTrue(true);
}
}
我仍然得到同样的错误!仅在运行测试时出现问题 - 其他方法运行正常。什么想法可能导致这个奇怪和恼人的错误?我是IntelliJ的新手,所以也许我错过了一些东西。
更新
我尝试从命令行运行测试,但结果相同。最后,我通过向maven命令添加-DforkMode=never
来运行它们。但仍然无法从IntelliJ运行测试。
答案 0 :(得分:1)
我遇到了同样的问题,现在我已经解决了。如果您使用的是maven,则可以通过向pom.xml
添加类似这样的属性来配置需要传递给运行的默认jvm args或其他测试选项。您可能需要注意,这是所有junit运行的主设置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<argLine>-Xms500m -Xmx1g</argLine>
<enableAssertions>true</enableAssertions>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
就我而言,项目将此配置设置为使用-Xms10g -Xmx10g
。用-Xms500m -Xmx1g
等较低的值替换它可以解决问题。
您可能已经有类似的配置,因此您可能希望在本地覆盖它,否则添加此配置应该有助于覆盖Intellij传递的默认值。