执行JUnit-Tests时Jenkins与Java堆空间异常

时间:2015-11-03 14:56:44

标签: java jenkins junit

我有一个Jenkins运行,它将构建一个Java项目,我知道其中一些单元测试非常贪婪。

我认为我的Jenkins内存分配仍然有问题,我的一些工作失败了OOM异常,更具体地说是Java Heap Space。

我通过编辑/etc/default/jenkins文件给了Jenkins本身2GB。为了确保JUnit-Tests也有足够的RAM,我通过Jenkins GUI将Global MAVEN_OPTS赋值为-Dmaven.surefire.heap=12g

这应该足以运行所有测试。但构建仍然失败。我是Jenkins的新手,所以我很感激指针可能是这里的问题。

1 个答案:

答案 0 :(得分:1)

减少运行测试的堆影响的一种方法是在单独的JVM中运行所有jUnit测试。这确实与速度有关,但是,这意味着每个单独的测试需要更长的时间。每个方法的时间将保持不变,只需为每个测试类设置额外的时间。

您可以在maven surefire插件中更改此设置,将这些行添加到您的pom中的设置中:

<configuration>
    <forkCount>1</forkCount>
    <reuseForks>false</reuseForks>
</configuration>

有关此主题的更多信息,请参见maven page for forking and parallel test execution