В настоящее время я использую 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.
Уменьшая количество файлов, включенных в покрытие кода, а также увеличивая общий предел памяти в PHP, я смог в основном убить эту ошибку. Вся Zend Framework была включена в покрытие кода, что очень велико.
У вас есть xdebug профилирование включено, если так попробуйте отключить его. Раньше я сталкивался с этой проблемой, и она сводилась к расширениям в php (в частности, профилирование xdebug и / или Inclued heirarchy viewer)