Если во время надежного (или отказоустойчивого) тестирования JUnit у вас заканчивается пространство кучи, изменение MAVEN_OPTS может вам не помочь. Я продолжал безуспешно пробовать разные конфигурации в MAVEN_OPTS, пока не нашел этот пост , в котором проблема была решена.
В основном JUnits отключаются в свою собственную среду и игнорируют настройки в MAVEN_OPTS. Вам нужно настроить surefire в вашем 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>