2012-01-10 36 views
11

Acabo de instalar phpunit vía pera en mac osx 10.7 y todo funciona bien, excepto que tengo errores de límite de memoria (xdebug habilitado para informes).El parámetro phpunit memory_limit no se aplica

He intentado añadir el parámetro -d memory_limit=512M a PHPUnit pero no está aplicando, ya que, en el primer error, añadí var_dump(ini_get('memory_limit')); exit; y se imprime la cadena (3) "32M"

Así que, ¿por qué no ser ¿aplicado?

Además de eso, si me quedo

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

se hace eco "256M"

¿Es posible que no se está ejecutando PHPUnit misma php?

+0

¿Intentó 'ini_set ('memory_limit', '512M')'? – afuzzyllama

+0

@afuzzyllama Funciona, pero no entiendo por qué no funciona con la línea de comandos – jerkan

+1

Esto va a sonar estúpido, pero ¿qué ocurre si intentas 'phpunit -dmemory_limit = 512M'? – afuzzyllama

Respuesta

20

Sí, puede configurar todas las opciones de php con phpunit -d que se pueden establecer con ini_set.

You already opened a bug over in the phpunit bug tracker pero también voy por la respuesta más detallada aquí

reproducirse para probar que funciona en general:

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

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

Produce:

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

Pero PHPUnit ¡solo aplica esta opción una vez antes de que se ejecute la primera prueba!

Por lo tanto, lo más probable es que su código cambie el límite de memoria a 32M, algo que phpunit no puede "arreglar".

Lo mismo ocurre con la configuración del límite de memoria en el archivo phpunit.xml.

+0

Ese ejemplo funcionaba como se explicó. Sin embargo, no pude encontrar ningún 'memory_limit' en el código. Continuaré depuración. Gracias. – jerkan

+1

Gracias por mencionar que mi código, por supuesto, podría establecer el límite – Rvanlaak

Cuestiones relacionadas