Если вам не хватает места в куче во время безошибочного (или отказоустойчивого) тестирования JUnit, изменение MAVEN_OPTS может вам не помочь. Я продолжал пробовать разные конфигурации в MAVEN_OPTS безуспешно, пока не нашел этот пост , который исправил проблему.
В основном JUnits разветвляются в свою среду и игнорируют настройки в MAVEN_OPTS. Вы должны настроить верный огонь в вашем pom, чтобы добавить больше памяти для JUnits.
Надеюсь, это может спасти кого-то еще!
Редактировать: Копирование решения из Блога Кейта Чепмена на случай, если однажды ссылка сломается:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-Xms256m -Xmx512m</argLine>
<testFailureIgnore>false</testFailureIgnore>
<skip>false</skip>
<includes>
<include>**/*IntegrationTestSuite.java</include>
</includes>
</configuration>
</plugin>
Обновление (31.05.2017):
Спасибо @ johnstosh за то, что указал на это - уверенность немного изменилась с тех пор, как я опубликовал этот ответ. Вот ссылка на их документацию и обновленный пример кода (строка arg по-прежнему является важной частью этого вопроса):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
<systemPropertyVariables>
<databaseSchema>MY_TEST_SCHEMA_${surefire.forkNumber}</databaseSchema>
</systemPropertyVariables>
<workingDirectory>FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory>
</configuration>
</plugin>