2011-10-11 96 views
6

如何傳遞自定義php.ini給phpunit?將自定義php.ini傳遞給phpunit

源使用

get_cfg_var 

,而不是

ini_get 

所以很遺憾它不使用通過的ini_set,-d選項設置等值

只有這樣,才能傳遞值現在是使用額外的php.ini。我如何將它傳遞給phpunit?

血淋淋的細節:

我試圖通過與-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 

要傳遞一個自定義的INI設定(或可替換地與-c <file> ini文件到PHPUnit的),調用它配置:

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

見如井:php --helphttp://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

@Fakrudeen:我添加了一個替代品,沒有問題來調用phpunit辦法。 – hakre

0

Github issue建議使用-c標誌。

php -c custom-php.ini `which phpunit` ... 
相關問題