phpunit -d 标志限制?

phpunit -d flag limitations?

手册说 phpunit -d key=val 允许任何对 ini 文件有效的设置。 php -d

的描述完全相同

但对我来说它什么也没做。

单独使用 php 进行测试:

$ cat test.php
<?php
var_dump( get_cfg_var('hello') );
?>

$ php -d hello=world test.php
string(5) "world"

一切顺利!现在我在 phpunit:

上得到了什么
$ cat test.php
<?php
class MyTest extends PHPUnit_Framework_TestCase {
        public function testA(){
                var_dump( get_cfg_var('hello') );
        }
}
?>

$ phpunit -d hello=world test.php
PHPUnit 3.7.35 by Sebastian Bergmann.

.bool(false)

如何通过命令行将 cfg_vars 传递给 php 单元?

-d选项设置ini变量使用ini_set函数,有没有在源代码中看到here.

因此,如果您可以更改代码,则可以使用带有 ini_get 的 -c 标志获取从命令行传递的值,例如尝试如下:

    public function testA(){
            var_dump( ini_get('hello') );
    }

docs 关于 get_cfg_var;

get_cfg_var() will return strictly the server php.ini

希望对您有所帮助