2012-01-10 19 views
11

लागू नहीं होता है मैंने मैक ओएसएक्स 10.7 में नाशपाती के माध्यम से सिर्फ phpunit स्थापित किया है और सबकुछ ठीक काम करता है सिवाय इसके कि मुझे मेमोरी सीमा त्रुटियां मिलती हैं (xdebug रिपोर्ट के लिए सक्षम)।phpunit memory_limit पैरामीटर

मैं PHPUnit को -d memory_limit=512M पैरामीटर जोड़ने की कोशिश की, लेकिन यह आवेदन नहीं है, क्योंकि पहले ही त्रुटि पर, मैं var_dump(ini_get('memory_limit')); exit; को जोड़ कर उसे स्ट्रिंग (3) "32M"

तो प्रिंट, यह क्यों नहीं किया जा रहा है आवेदन किया है?

कि इसके अलावा

, अगर मैं

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

चलाने यह "256M" गूँज

क्या यह संभव है कि एक ही PHPUnit php क्रियान्वित नहीं कर रहा है?

+0

क्या आपने 'ini_set ('memory_limit', '512M') 'कोशिश की? – afuzzyllama

+0

@afuzzyllama यह काम करता है लेकिन मुझे नहीं लगता कि यह कमांड लाइन – jerkan

+1

के साथ क्यों नहीं है यह बेवकूफ लग रहा है, लेकिन यदि आप 'phpunit -dmemory_limit = 512M'' का प्रयास करते हैं तो क्या होता है? – afuzzyllama

उत्तर

20

हाँ आप phpunit -d के साथ प्रत्येक PHP विकल्प सेट कर सकते हैं जिसे ini_set के साथ सेट किया जा सकता है।

You already opened a bug over in the phpunit bug 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 फ़ाइल में मेमोरी सीमा निर्धारित करने के लिए ही चला जाता है।

+0

यह उदाहरण समझाया गया है। हालांकि, मुझे कोड में कोई भी 'memory_limit' नहीं मिला। मैं जारी रखूंगा डिबगिंग। धन्यवाद। – jerkan

+1

उल्लेख करने के लिए धन्यवाद कि मेरा कोड ऑफ़र सीमा निर्धारित कर सकता है – Rvanlaak