2013-03-20 7 views
6

SBT продолжает работать на некоторых моих более крупных моделях приемочного стиля, используя specs2 и spray-testkit. У меня есть 10 концертов или RAM, и в настоящее время я запускаю SBT (используя SBT extras script) с MaxPermSize на 512 м, Xms на 1024 м и Xmx на 2g.Параметры памяти JVM для спецификаций2

Приемочный тест проходит через весь бизнес-процесс клиента в определенной последовательности, поэтому нелегко разделить приемный тест на несколько меньших тестов.

Любые идеи о том, как я могу настроить свою среду лучше, или получить, что я должен обратить внимание, будут оценены.

Для чего это стоит, я использую Oracle Java под Ubuntu, а проект использует Scala 2.10, sbt 0.12.2, спрей 1.1-M7 с specs2 1.14.

При запуске системы вне теста или при использовании небольших тестов все работает как часы. Только во время более крупных тестов все становится сумасшедшим.

ответ

2

Я подозреваю, что вы сталкиваетесь с экспоненциальной проблемой с непременным стилем specs2. Решение состоит в том, чтобы просто добавить больше памяти или перегрузить ваши тесты на более мелкие куски. Больше информации здесь:

http://www.artima.com/articles/compile_time.html

6

Одна вещь, которую вы можете сделать, это раскошелиться тесты, вы можете установить настройки памяти в build.sbt непосредственно:

fork in Test := true 

javaOptions in Test += "-Xmx2048m" // we need lots of heap space 

Это означает, что тесты не зависят от вас работает с SBT extras, а настройки не влияют на сам sbt. Вы также можете установить различные другие параметры (см. Forking), включая изменение рабочего каталога и даже JRE для использования.

+0

+1 Очень полезно, спасибо. – Jack

+0

тесно связан с http://stackoverflow.com/questions/3868863/how-to-specify-jvm-maximum-heap-size-xmx-for-running-an-application-with-run/14561346#14561346 – iwein

+0

взял меня минуту, чтобы понять, что вам нужна линия между этими двумя. –

Смежные вопросы