phpunit似乎加载了错误的包含路径

时间:2012-09-10 10:49:06

标签: phpunit pear php include-path

我正在尝试使用MAMP在我的os x Lion上安装phpunit。我在/Applications/MAMP/bin/php/php5.4.4/lib/php安装了phpunit。

当我在终端中运行phpunit时出现此错误:

  

警告:require_once(File / Iterator / Autoload.php):无法打开流:第45行/usr/lib/php/pear/PHPUnit/Autoload.php中没有此类文件或目录

     

致命错误:require_once():在第45行的/usr/lib/php/pear/PHPUnit/Autoload.php中打开所需的'File / Iterator / Autoload.php'(include_path =':')失败

我注意到包含路径是“。”所以我在终端运行这个以找到正在加载“php --ini”的php.ini文件并获取此

Loaded Configuration File:         /Applications/MAMP/bin/php/php5.4.4/conf/php.ini

php.ini文件中的include路径是

include_path = ".:/Applications/MAMP/bin/php/php5.4.4/lib/php:/usr/lib/php/pear:/usr/bin/phpunit"

那为什么它会以“。”的形式出现。什么时候在终端上运行phpunit?

作为检查,我使用以下代码创建了一个php文件:

echo get_include_path();

当我在终端中运行该文件时,它会在php.ini文件中输出包含路径。

我还在{Applications/MAMP/bin/php/php5.4.4/lib/php/PHPUnit/Autoload.php的顶部添加了echo get_include_path();。当我在终端中运行phpunit时,输出的包含路径是“。:”

似乎phpunit正在加载一个需要修复的不同包含路径。

2 个答案:

答案 0 :(得分:0)

可能有2个PHPUnit安装,一个在/usr/lib/php/pear/,一个在你的MAMP目录中。你得到第一个被执行的。

如果是这种情况,那么你应该改变你的$PATH以在第一个位置拥有MAMP php bin目录。

答案 1 :(得分:0)

对我来说简单的方法是直接从https://phar.phpunit.de/phpunit.phar下载最新版本,然后找到在终端中下载文件的位置,并且:

machine:~ username$ chmod +x phpunit.phar

machine:~ username$ mv phpunit.phar /usr/local/bin/phpunit

调整你的PATH,例如.profile:

machine:~ username$ pico .profile

确保您有这一行,如果没有,只需包括:

export PATH=/usr/local/bin/:$PATH

退出并重新打开终端或:

machine:~ username$ source .profile

现在

machine:~ username$ phpunit --version

应显示最新安装的版本