передача пользовательских php.ini в phpunit - PullRequest
6 голосов
/ 11 октября 2011

Как передать пользовательский php.ini в phpunit?

Источник использует

get_cfg_var 

вместо

ini_get

так что, к сожалению, он не использует значения, установленные ini_set, -d option и т. Д.

Единственный способ передать значение сейчас - использовать дополнительный 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>

, который не работает [и я не ожидаю этого].

Ответы [ 2 ]

5 голосов
/ 11 октября 2011

-d должно работать, потому что get_cfg_var читает их:

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

Чтобы передать пользовательский параметр ini (или, альтернативно, файл ini с -c <file> в phpunit), вызовите его настроенный:

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

См. Также: php --help, http://www.phpunit.de/manual/3.6/en/appendixes.configuration.html

0 голосов
/ 17 ноября 2016

В выпуске Github рекомендуется использовать флаг -c.

php -c custom-php.ini `which phpunit` ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...