2012-01-10 11 views
11

Właśnie zainstalowałem phpunit za pośrednictwem gruszki w mac osx 10.7 i wszystko działa dobrze, oprócz tego, że mam błędy limitu pamięci (włączone dla raportów xdebug).Parametr phpunit memory_limit nie ma zastosowania

Próbowałem dodać parametr -d memory_limit=512M do phpunit ale nie ubiega, ponieważ na pierwszym błędem, dodałem var_dump(ini_get('memory_limit')); exit; i drukuje ciąg (3) „32M”

tak, dlaczego nie jest to istota stosowany?

Poza tym, jeśli biegnę

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

to echo "256M"

Czy to możliwe, że phpunit nie wykonuje sam php?

+0

Czy próbowałeś 'ini_set ('memory_limit', '512M')'? – afuzzyllama

+0

@afuzzyllama Działa, ale nie rozumiem, dlaczego nie z linii poleceń – jerkan

+1

To zabrzmi głupio, ale co się stanie, jeśli spróbujesz 'phpunit -dmemory_limit = 512M'? – afuzzyllama

Odpowiedz

20

Tak, można ustawić każdą opcję php za pomocą phpunit -d, którą można ustawić za pomocą ini_set.

You already opened a bug over in the phpunit bug tracker ale dobrze Idę na odpowiedź bardziej opisowym tutaj

rozmnażać, żeby go pokazać działa w ogóle:

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

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

Produkuje:

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

Ale phpunit stosuje tę opcję tylko raz przed uruchomieniem pierwszego testu!

Jest więc szansa, że ​​kod zmienia limit pamięci z powrotem na 32M, którego phpunit nie może "naprawić".

To samo dotyczy ustawiania limitu pamięci w pliku phpunit.xml.

+0

Ten przykład działał tak, jak to wyjaśniono, ale nie znalazłem w kodzie" memory_limit ". debugowanie, dziękuję – jerkan

+1

Dziękuję za wzmiankę, że mój kod może ustawić limit – Rvanlaak

Powiązane problemy