Генерация покрытия кода Phpunit, вызывая истощение памяти

StackOverflow https://stackoverflow.com/questions/3895038

Вопрос

В настоящее время я использую Zend Framework в сочетании с PhpUnit для проведения единичных тестирования в приложении. Когда Hudson выполняет команду Phpunit Shell, максимальный предел памяти PHP достигается где -то во время генерации покрытия кода. В настоящее время у меня есть 41 тест с 334 утверждениями.

Я успешно устранил эту ошибку, подняв настройку Memore_Limit до 768 м, используя -d memory_limit=768M выключатель; Тем не менее, я обеспокоен тем, что по мере того, как сложность увеличивается вместе с общим количеством тестов/утверждений, у меня не будет достаточно памяти для создания HTML для статистики покрытия кода.

ОПЕРАЦИОННЫЕ СИСТЕМЫ: Centos 5.5
Панель управления: WHM/CPanel
CI -сервер: Гудзон

/usr/local/bin/phpunit 
  --verbose  
  -d memory_limit=512M  
  --log-junit ../../build/logs/phpunit.xml   
  --coverage-clover ../../build/logs/coverage/clover.xml   
  --coverage-html ../../build/logs/coverage-html/  

Фатальная ошибка: разрешенный размер памяти 536870912 байтов

Прежде чем совершать мои изменения и позволить Хадсону справиться с остальными, я использую Windows 7 для разработки. Использование памяти никогда не превышало 340 МБ при выполнении одной и той же команды в W7.

Это было полезно?

Решение

Сокращая количество файлов, включенных в покрытие кода, а также увеличивая общий предел памяти в PHP, я смог в основном убить эту ошибку. Вся структура Zend была включена в покрытие кода, что очень большое.

Другие советы

У вас включено профилирование XDEBUG, если это так, попробуйте отключить его. Я сталкивался с этой проблемой раньше, и она сводилась к расширениям в PHP (в частности, xdebug Profiling и/или включено в Heirarchy Viewer)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top