phpunit似乎加载了不正确的include路径


phpunit seems to load incorrect include path

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

当我在终端中运行phpunit时,我会得到以下错误:

警告:require_one(File/Iterator/Autoload.php):无法打开流:第45行的/usr/lib/php/pear/PHPUnit/Autoloadphp中没有这样的文件或目录

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

我注意到include路径是""所以我在终端中运行这个程序来查找正在加载哪个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文件中的include路径。

我还在/Applications/MAMP/bin/php/php5.4.4/lib/php/PHPnit/Autoload.php的顶部添加了echo get_include_path();。当我用它在终端中运行PHPUnit时,输出的include路径是".:"

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

可能有两个PHPUnit安装,一个在/usr/lib/php/pear/中,另一个在MAMP目录中。

如果是这种情况,那么您应该更改$PATH,使MAMP php-bin-dir位于第一个位置。

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

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

调整您的路径,例如在.profile:中

machine:~ username$ pico .profile

确保你有这行,如果没有,只包括:

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

退出并重新打开终端或:

machine:~ username$ source .profile

现在

machine:~ username$ phpunit --version

应显示的最新安装版本