Параметр phpunit memory_limit не применяется - PullRequest
14 голосов
/ 11 января 2012

Я только что установил phpunit через pear в 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?

Ответы [ 2 ]

27 голосов
/ 11 января 2012

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

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

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

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.

7 голосов
/ 21 ноября 2018

Для тех, кто достиг этого потока и должен получить конфигурацию для phpunit.xml файла конфигурации:

<php>
  <ini name="memory_limit" value="512M" />
</php>

Подробнее о разделе «Установка параметров PHP INI, констант и глобальных переменных» на https://phpunit.de/manual/6.5/en/appendixes.configuration.html

...