如何让 phpunit 扫描 /etc/php5/cli/conf.d 目录中的 ini 文件?
我正在使用phpunit,但是正确配置非常耗时。我刚刚遇到的一个问题是,当我从 Eclipse 中将 phpunit 作为“运行配置”启动时,我的 php 扩展的 ini 文件似乎没有正确加载。我基本上遵循了本教程: http: //pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnit
从 Eclipse 中运行时(菜单运行.../运行配置...),然后是目录
/etc/php5/cli/conf.d
这与
/etc/php5/conf.d/
不被解析。因此,例如,文件
/etc/php5/conf.d/curl.ini
被忽略。我必须将单行添加到ini文件
echo "extension=curl.so" >> /etc/php5/cli/php.ini
这似乎解决了问题,但适得其反,因为它破坏了模块化(并且将在下一次 distri / php 升级后消失)
为了找到这个问题,我修改了 phpunit.php,在文件开头添加了对 phpinfo() 的调用。
这是输出。
PHP Version => 5.3.10-1ubuntu3.4
System => Linux wb3 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64
Build Date => Sep 12 2012 18:58:31
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /tmp/zend_debug/session6700026373526677062.tmp/php.ini
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
当我检查 /tmp/zend_debug/session6700026373526677062.tmp/php.ini 时:
使用 grep -C 2 扩展
我没有输出。
将 extension=curl.so 添加到 /etc/php5/cli/php.ini 后,当我运行 phpunit Eclipse-Run-configuration 时会加载 curl 扩展
但是当我从命令行运行 phpunit 时,结果会有所不同。现在我明白了
phpunit --debug --verbose MyClass
PHP Warning: Module 'curl' already loaded in Unknown on line 0
更新:(还没有答案)
我找到了解决我的问题的方法:
我在文件系统中创建了一个自定义 php.ini 文件,其中包含所有附加的包含,并且在 Eclipse Preferences for PHP 中,我使用我的专用 php.ini 为 php5 解释器创建了一个新配置。
在 Eclipse Run-Configuration Menu 中,设置 Config 对话框,我只是指向新的 php5-configuration。
但这并不能解决问题,所以我仍在寻找答案。是 Eclipse 问题还是 phpunit - 问题?我现在不知道。