2011-10-11 2 views
6

Come passare un php.ini personalizzato a phpunit?passando php.ini personalizzato a phpunit

La fonte utilizza

get_cfg_var 

anziché

ini_get 

così purtroppo non usa valori impostati ini_set, opzione -d ecc

solo modo per passare il valore ora è quello di utilizzare un php.ini aggiuntivo. Come posso passarlo in phpunit?

dettagli cruenti:

Ho provato passando con -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---"; 
} 

Si riprende semplicemente "--- --- prova"

Il motivo è questo utilizza come ini_set bene:

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); 
        } 
       } 
      } 

Anche nel phpunit.xml, ho

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

che non funziona [e non mi aspetto che].

risposta

5

-d dovrebbe funzionare perché get_cfg_var legge quelli:

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

per passare un personalizzato ini impostazione (o in alternativa, il file ini con -c <file> a PHPUnit), invocarlo configurato:

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

Vedi come bene: php --help, http://www.phpunit.de/manual/3.6/en/appendixes.configuration.html

+0

Non penso che phpunit lo trasmetta a php - vedere la mia modifica sopra. – Fakrudeen

+0

Ho confermato che non funzionerà dal codice: https://github.com/sebastianbergmann/phpunit/blob/master/PHPUnit/TextUI/Command.php – Fakrudeen

+0

@Fakrudeen: ho aggiunto un'alternativa, nessun problema per richiamare phpunit modo. – hakre

0

Github issue consiglia di utilizzare il flag -c.

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