2011-10-11 13 views
6

पर php.init पर कस्टम php.ini पास करने के लिए कस्टम php.ini पास करने के लिए?phpunit

स्रोत का उपयोग करता है

get_cfg_var 
बजाय

ini_get 

तो दुर्भाग्य से यह

केवल रास्ता ini_set, -d विकल्प आदि द्वारा निर्धारित मूल्यों का उपयोग नहीं करता मूल्य पारित करने के लिए अब एक अतिरिक्त php.ini का उपयोग करना है। मैं इसे phpunit में कैसे पास करूं?

Gory विवरण:

मैं -d

phpunit --filter testgetdesc -d SIEF_VALIDATOR_DOC_ROOT="htdocs" 
--configuration tests/phpunit.xml tests/configHelperTest.php 

public function testgetdesc() { 
    echo get_cfg_var("SIEF_VALIDATOR_DOC_ROOT")."---test---"; 
} 

साथ में पारित यह बस गूँज "--- परीक्षण ---"

कारण इस ini_set के रूप में उपयोग करता है की कोशिश की अच्छी तरह से:

https://github.com/sebastianbergmann/phpunit/blob/master/PHPUnit/TextUI/Command.php

  case 'd': { 
       $ini = explode('=', $option[1]); 

       if (isset($ini[0])) { 
        if (isset($ini[1])) { 
         ini_set($ini[0], $ini[1]); 
        } else { 
         ini_set($ini[0], TRUE); 
        } 
       } 
      } 

इसके अलावा phpunit.xml में, मैं जो काम नहीं करता है [और मैं इसे करने के लिए की उम्मीद नहीं है]

<php> 
    <ini name="SIEF_VALIDATOR_DOC_ROOT" value="bar"/> 
</php> 

है।

उत्तर

5

-d काम करना चाहिए क्योंकि get_cfg_var उन पर लिखा है:

$ php -d display.errors2=1 -r "echo get_cfg_var('display.errors2');" 
1 

की स्थापना आरं एक कस्टम पास करने के लिए (या वैकल्पिक रूप -c <file> साथ INI फ़ाइल PHPUnit के लिए), आह्वान इसे कॉन्फिगर:

$ php -d setting=value `which phpunit` <your params> 

के रूप में देखें अच्छा: php --help, http://www.phpunit.de/manual/3.6/en/appendixes.configuration.html

+0

मुझे नहीं लगता कि phpunit इसे php पर भेजता है - कृपया ऊपर मेरा संपादन देखें। – Fakrudeen

+0

मैंने पुष्टि की, यह कोड से काम नहीं करेगा - https://github.com/sebastianbergmann/phpunit/blob/master/PHPUnit/TextUI/Command.php – Fakrudeen

+0

@ फ़क्रुडेन: मैंने एक विकल्प जोड़ा, phpunit को आमंत्रित करने में कोई समस्या नहीं है मार्ग। – hakre

0

Github issue-c ध्वज का उपयोग करने की सिफारिश करता है।

php -c custom-php.ini `which phpunit` ...