PHPUnit配置文件和auto_prepend_file

时间:2012-03-21 12:20:38

标签: php phpunit

我正在尝试使用phpunit配置文件来设置特定的php-ini设置。当我尝试将 auto_prepend_file 设置为存在的文件时,测试了相对路径和绝对路径,它不起作用。

如果我在php-ini文件中设置它,我会工作。 的php.ini

[...]
auto_prepend_file=/path/to/project/config.php
[...]

我要做的是在加载我的测试用例之前加载这个config.php文件,因为我有一些我需要访问的函数和配置变量。也许我可以通过其他方式来实现,而不是使用auto_prepend_file!?或者有人知道如何使它以这种方式工作!?

phpunit配置文件:

<phpunit>
  [...]
  <php>
    <ini name="auto_prepend_file" value="/path/to/project/config.php" />
  </php>
  [...]
</phpunit>

提前致谢!

1 个答案:

答案 0 :(得分:3)

您只能使用<ini>标记设置可以使用ini_set()在PHP中设置的值。

所以只有PHP_INI_ALL的ini值。 auto_prepent_file指令是PHP_INI_PERDIRsee the docs),这意味着当php进程已经运行时无法设置它。


要在运行测试之前包含文件,您有两个选择:

Ether使用--bootstrap file_to_run_before_tests_run.php选项

或使用php -d auto_prepend_file=yourfile.php /path/to/phpunit运行phpunit。

这两种方法都可以确保在执行任何测试之前执行文件内容,--bootstrap是更常见的方法。