PHPUnit配置文件和auto_prepend_file

3

我正在尝试使用phpunit配置文件来设置特定的php-ini设置。当我尝试将auto_prepend_file设置为一个已存在的文件时,无论是相对路径还是绝对路径,它都不起作用。

但是,如果我在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个回答

3
您只能使用<ini>标签来设置可以从PHP中使用ini_set()设置的值。

因此,仅支持PHP_INI_ALL的ini值。 auto_prepent_file指令是PHP_INI_PERDIR(请参阅文档),这意味着当php进程已经运行时无法设置它。


在测试运行之前包含文件有两个选项:

使用--bootstrap file_to_run_before_tests_run.php 选项

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

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


啊,这就解释了为什么我不能工作!谢谢!不过,我希望我不需要使用类似于Bootstrap的任何东西。 - englund

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接