我正在尝试使用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正在加载一个需要修复的不同包含路径。
答案 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
应显示最新安装的版本