2011-10-11 24 views
6

¿Cómo pasar un php.ini personalizado a phpunit?pasando php.ini personalizado a phpunit

La fuente utiliza

get_cfg_var 

en lugar de

ini_get 

lo que, lamentablemente, no consume valores establecidos por ini_set, opción -d etc.

única manera de pasar el valor ahora es usar un php.ini adicional. ¿Cómo paso eso a phpunit?

detalles morbosos:

que intentaron pasar 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---"; 
} 

Simplemente se hace eco de "prueba --- ---"

La razón es ésta utiliza como ini_set bien:

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

También en el phpunit.xml, tengo

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

que no funciona [y no me esperaba que].

Respuesta

5

-d debe trabajar porque get_cfg_var lee los:

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

Para pasar una costumbre parámetro ini (o, alternativamente, el archivo INI con -c <file> a PHPUnit), lo invocan configurado:

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

Ver como bien: php --help, http://www.phpunit.de/manual/3.6/en/appendixes.configuration.html

+0

No creo que phpunit lo transmita a php. Consulte mi edición anterior. – Fakrudeen

+0

Confirmé, no funcionará desde el código - https://github.com/sebastianbergmann/phpunit/blob/master/PHPUnit/TextUI/Command.php – Fakrudeen

+0

@Fakrudeen: Agregué una alternativa, no hay problema para invocar phpunit que camino. – hakre

0

El Github issue recomienda usar la bandera -c.

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