phpunit -d标志限制?

时间:2015-09-08 18:41:16

标签: php unit-testing phpunit

手册说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传递给phpunit?

1 个答案:

答案 0 :(得分:1)

-d选项使用ini_set函数设置ini变量,您可以在源代码here中看到。

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

    public function testA(){
            var_dump( ini_get('hello') );
    }
来自docs关于get_cfg_var;

  

get_cfg_var()将严格返回服务器php.ini

希望这个帮助