Параметр phpunit memory_limit не применяется

Я только что установил phpunit через грушу в mac osx 10.7, и все работает отлично, за исключением того, что я получил ошибки ограничения памяти (xdebug включен для отчетов).

Я попытался добавить параметр -d memory_limit=512M в phpunit, но он не применяется, потому что при первой ошибке я добавил var_dump(ini_get('memory_limit')); exit; и печатает строку (3) "32M"

Итак, почему он не применяется?

Кроме того, если я запустил

php -d memory_limit=256M -r "echo ini_get('memory_limit');"

он перекликается с "256M"

Возможно ли, что phpunit не выполняет тот же php?

Ответ 1

Да, вы можете установить каждый параметр php с помощью phpunit -d, который можно установить с помощью ini_set.

Вы уже открыли ошибку в phpunit tug tracker, но я собираюсь сделать более подробный ответ здесь

Воспроизведение, чтобы показать, что оно работает в целом:

echo "<?php var_dump(ini_get('memory_limit')); " > foo.php

phpunit -d memory_limit=12M --bootstrap foo.php 

Выдает:

string(3) "12M"
PHPUnit 3.6.5 by Sebastian Bergmann.

Но phpunit применяет эту опцию только до того, как будет запущен первый тест!

Так что, скорее всего, ваш код где-то меняет ограничение памяти на 32M, что-то phpunit не может "исправить".

То же самое относится к настройке предела памяти в файле phpunit.xml.