Тест JUnit - это не что иное, как класс Java, который работает внутри JVM. Таким образом, будет трудно определить эти ограничения только для одного модульного теста. В конце концов, вам нужно будет настроить саму JVM.
Чтобы добиться этого, вы можете использовать отдельную конфигурацию для своих тестов, как показано на примере Maven. Во-первых, вы можете использовать свойство конфигурации surefire-plugins argLine
для настройки среды. Затем, ограничьте класс для тестирования с помощью конфигурации include
, как описано здесь .
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>...</version>
<configuration>
<argLine>-Xmx2048m</argLine>
<includes>
<include>...</include>
</includes>
</configuration>
</plugin>
Затем используйте пользовательский профиль, который, вероятно, вызывается активным свойством в вашемсервер сборки.
<profile>
<id>low-memory-tests</id>
<activation>
<property>
<name>...</name>
</property>
</activation>
</profile>
Примечания:
- Даже если вы выполняете только один одиночный модульный тест в этом профиле, вы все равно не можете гарантировать, что только тестможет потреблять 2048м пространства кучи, но все приложение. Но я полагаю, что это будет хорошая ставка.
- Даже если вы не используете Maven, другие инструменты сборки должны иметь аналогичный способ применения вышеуказанной конфигурации, вы поймете, что идея.