udo*_*udo 18 phpunit mamp osx-lion
跑步的时候
我收到错误
Warning: require(PHPUnit/Autoload.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit on line 42
Fatal error: require(): Failed opening required 'PHPUnit/Autoload.php' (include_path='.:') in /usr/local/bin/phpunit on line 42
Run Code Online (Sandbox Code Playgroud)
/ usr/local/bin/phpunit在第42行显示以下内容:
require 'PHPUnit/Autoload.php';
Run Code Online (Sandbox Code Playgroud)
任何建议如何解决这个问题?
更新(1):
我在/ etc /中缺少php.ini,所以我通过符号链接来阅读MAMP php.ini.现在我明白了
php -r 'foreach (explode(":", get_include_path()) as $path) echo $path . PHP_EOL;'
.
/Applications/MAMP/bin/php/php5.3.6/lib/php
/usr/local/bin/pear
/usr/local/share/pear/PHPUnit
Run Code Online (Sandbox Code Playgroud)
赛跑
正在运行但不提供输出.
有什么建议接下来要检查什么?
更新(2):
可能这个问题的根本原因与问题有关
war*_*hod 13
我在MAC OSX Lion上遇到了类似的问题.我用PEAR包管理器安装了phpunit,当我尝试运行它时,我得到了udo所描述的错误.我能够通过以下简单步骤解决它:
curl http://pear.php.net/go-pear.phar > go-pear.phpsudo php -q go-pear.php在安装过程中,它会检测php.ini中的include_path是否不包含PEAR PHP目录.在给定选项时,您可以选择让它自动为您修复.
您必须在PHP包含路径上包含包含PHPUnit源文件的文件夹.另外,PHPUnit/Autoload.php在3.6中添加了,你可能有一个旧的3.5.x源文件夹.检查使用的列出的文件夹
php -r 'foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;'
Run Code Online (Sandbox Code Playgroud)
(或在Windows上)
php -r"foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;"
Run Code Online (Sandbox Code Playgroud)
并确保其中一个包含一个PHPUnit文件夹Autoload.php.
更新:关于您的更新,您可能希望/usr/local/share/pear/PHPUnit从包含路径中删除,因为您PHPUnit/Autoload.php应该包含哪个位于/usr/local/share/pear包含路径中的位置.
要确保PHPUnit首先运行,phpunit --version以便您可以看到已安装的版本.PHPUnit在输出任何内容之前实例化它计划运行的所有测试用例.如果您的任何测试用例在加载时导致致命错误,有时根本不会显示任何输出.这非常令人沮丧.首先创建可能不使用任何代码的最简单的测试用例.
class MyTest extends PHPUnit_Framework_TestCase {
function testThatItWorks() {
self::assertTrue(true);
}
}
Run Code Online (Sandbox Code Playgroud)
运行此测试应该产生一次通过测试.试试并粘贴您在问题中看到的内容.