gpt4 book ai didi

java - 运行 JUnit 测试时无法为对象堆保留足够的空间

转载 作者:行者123 更新时间:2023-12-01 12:25:51 25 4
gpt4 key购买 nike

在我的项目中,我有单元测试。我正在使用 IntelliJ。每当我尝试运行它们时,IntelliJ 都会显示消息:

Error occured during initialization of VM

Could not reserve enough space for object heap

Could not create the Java virtual machine.

我尝试使用 VM 参数运行这些测试运行配置 -> VM 选项:-Xms256m -Xmx512m我读了很多关于这个问题的文章(以及提出的解决方案),尝试了很多组合,但没有一个有效。我变得沮丧并认为我的测试“太复杂”(模拟和类似的东西......),所以我编写了示例测试:

public class TestClass {

@Test
public void test() {
assertTrue(true);
}
}

我仍然遇到同样的错误! 仅在运行测试时才会出现问题 - 其他方法运行良好。有什么想法可能会导致这个奇怪而烦人的错误吗?我是 IntelliJ 的新手,所以也许我遗漏了一些东西。

更新

我尝试从命令行运行测试,但结果相同。最后,通过将 -DforkMode=never 添加到 Maven 命令,我能够运行它们。但仍然无法从 IntelliJ 运行测试。

最佳答案

我遇到了同样的问题,现在已经解决了。如果您使用的是 Maven,则可以通过向 pom.xml 添加类似的属性来配置默认的 jvm 参数或需要传递给运行的其他测试选项。您可能需要注意,这是所有 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 传递的默认值。

关于java - 运行 JUnit 测试时无法为对象堆保留足够的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com