2012-01-10 25 views
11

Sadece mac osx 10.7'de armut üzerinden phpunit'i kurdum ve bellek sınırlama hatalarım dışında her şey iyi çalışıyor (raporlar için xdebug etkin). phpunit memory_limit parametresi uygulanmaz

Ben PHPUnit için -d memory_limit=512M parametre eklemek için çalıştı ama o uygulayarak değil ilk hata, ben var_dump(ini_get('memory_limit')); exit; eklendi, çünkü o, neden olmak değildir dize (3) "32M" Yani

yazdırır uygulamalı?

Bunun yanı sıra

, bunu

PHPUnit aynı php yürütme olmadığını mümkün mü "256M" yankıları

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

çalıştırırsanız?

+0

"ini_set ('memory_limit', '512M')' yi denediniz mi? – afuzzyllama

+0

@afuzzyllama Çalışıyor ama neden komut satırıyla gelmiyor anlamıyorum – jerkan

+1

Bu aptalca geliyor, ama phpunit -dmemory_limit = 512M' denerseniz ne olur? – afuzzyllama

cevap

20

Evet, ini_set ile ayarlanabilen her php seçeneğini phpunit -d ile ayarlayabilirsiniz.

You already opened a bug over in the phpunit bug tracker ama iyi bunu göstermek için

Yeniden burada daha ayrıntılı cevap gidiyorum genelde çalışır:

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

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

üretir:

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

Ama PHPUnit İlk test çalıştırılmadan önce sadece bu seçeneği bir kez uygular!

Bu nedenle kodunuz, bellek sınırını 32M olarak değiştiren bir yerdedir, bu da phpunit'in "düzeltme" yapamayacağı bir şeydir.

Aynı şey, phpunit.xml dosyasındaki bellek sınırını ayarlamak için de geçerli.

+0

Bu örnek açıklandığı gibi çalıştı.Ancak, kodda herhangi bir 'memory_limit' bulunamadı coud. hata ayıklama Teşekkürler – jerkan

+1

Kodumun kodun limiti belirleyebileceğini belirttiğiniz için teşekkür ederiz. – Rvanlaak