phpunit在eclipse中启动时会忽略/etc/php5/cli/conf.d目录



可能的重复:
当我在Eclipse中调试PHP脚本时,它不会加载mysql扩展

如何让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

这似乎解决了问题,但适得其反,因为它打破了模块化(在下一次发行版/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-C2扩展

我没有输出。

将extension=curl.so添加到/etc/php5/cli/php.ini之后curl扩展是在我运行phpunit Eclipse run配置时加载的

但是当我从命令行运行phpunit时,结果就不一样了。现在我得到

phpunit --debug --verbose  MyClass 
PHP Warning:  Module 'curl' already loaded in Unknown on line 0

更新:(还没有答案)

我找到了解决问题的方法:

我在文件系统中创建了一个自定义的php.ini文件,其中包含所有附加的include,在Eclipse Preferences for php中,我使用我的专用php.ini为php5解释器创建了一种新的配置

在Eclipse Run Configuration Menu中,设置Config Dialog Box,我只需指向新的php5配置。

但这并不能解决问题,所以我仍在寻找答案。这是eclipse问题还是phpunit问题?我现在不知道。

这是Eclipse PDT的预期行为。有关更多信息,请参阅类似的问题和我的回答。

最新更新