2012-01-23 3 views
1

Мы недавно начали видеть это исключение во время работы рамки воспроизведения в режиме автоматического теста:Как увеличить размер кучи тестового бегуна/FirePhoque в playframework

~ testcode...                    Exception in thread "JS executor for [email protected]" java.lang.OutOfMemoryError: Java heap space 
    at net.sourceforge.htmlunit.corejs.javascript.Parser.propertyAccess(Parser.java:2656) 
    at net.sourceforge.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2527) 
    at net.sourceforge.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2502) 
    at net.sourceforge.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2376) 
    at net.sourceforge.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2299) 

Мои поиски на Google, кажется, указывают на что это может быть связано с наличием страниц, которые немного большие. Я отслеживал процесс FirePhoque и, судя по всему, ограничен размером кучи размером 128 Мб или около того.

Есть ли официальный способ увеличить размер кучи?

Обратите внимание, что увеличение размера кучи в режиме воспроизведения не помогает.

Спасибо.

ответ

2

Вы можете отредактировать скрипт python, который контролирует это. Причина увеличения размера кучи Play заключается в том, что Firephoque работает в другой виртуальной машине (если я правильно читаю код!)

Открыть $ {PLAY_HOME} /framework/pym/play/commands/base.py и найти автотест(). Там, на полпути вниз, находится комментарий # Run FirePhoque. Под здесь команда строитель для работы Firephoque - вы можете увеличить размер кучи здесь путем изменения

java_cmd = [app.java_path(), '-classpath', cp_args, '-Dapplication.url=%s://localhost:%s' % (protocol, http_port), '-DheadlessBrowser=%s' % (headless_browser), 'play.modules.testrunner.FirePhoque'] 

в

java_cmd = [app.java_path(), '-Xmx512M -classpath', cp_args, '-Dapplication.url=%s://localhost:%s' % (protocol, http_port), '-DheadlessBrowser=%s' % (headless_browser), 'play.modules.testrunner.FirePhoque'] 
+0

Спасибо вам за помощью - это было правильное место, однако он не работает по просто заменив его там. Вместо этого я сделал следующее: java_cmd = [app.java_path(), '-classpath', cp_args, '-Xmx512M', '-Dapplication.url =% s: // localhost:% s' ... –

+0

D'oh , ты прав. Извини за это :) –

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