Генерация покрытия кода PHPUnit, вызывающая изнурение памяти

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

Я успешно устранил эту ошибку, установив параметр memory_limit на 768M с помощью переключателя -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.

Ответ 1

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

Ответ 2

У вас есть xdebug профилирование включено, если так попробуйте отключить его. Я уже сталкивался с этой проблемой, и она сводилась к расширениям в php (в частности, профилирование xdebug и/или Inclued viewer).