运行时
我得到了错误
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
/usr/local/bin/phpunit在第42行显示以下内容:
require 'PHPUnit/Autoload.php';
有什么建议如何解决这个问题吗?
更新(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
正在运行
正在运行,但未提供任何输出。
有什么建议下一步要检查什么?
更新(2):
这个问题的根本原因可能与问题有关。
发布于 2012-01-19 05:46:26
我在MAC OSX Lion上遇到了类似的问题。我在PEAR包管理器中安装了phpunit,当我尝试运行它时,得到了udo所描述的错误。我能够通过以下简单的步骤解决这个问题:
使用sudo php -q go-pear.php
获取pear curl http://pear.php.net/go-pear.phar > go-pear.php
在安装过程中,它会检测php.ini中的include_path是否不包含PEAR PHP目录。如果有选择,您可以选择让它自动为您修复它。
发布于 2011-12-01 08:24:28
您的PHP include path上必须有包含PHPUnit源文件的文件夹。此外,PHPUnit/Autoload.php
是在3.6版本中添加的,您有可能使用较旧的3.5.x源文件夹。使用以下命令检查列出的文件夹
php -r 'foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;'
(或在Windows上)
php -r"foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;"
并确保其中一个文件包含带有Autoload.php
的PHPUnit
文件夹。
更新:关于您的更新,您可能希望从包含路径中删除/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);
}
}
运行这个测试应该会产生一个通过的测试。尝试并粘贴您在问题中看到的内容。
发布于 2014-07-25 02:21:51
当我从我的本地目录运行phpunit.phar
时,我遇到了这个问题,而且我还将PHPUnit安装为composer依赖项。删除PHPUnit composer依赖项解决了我的问题。
https://stackoverflow.com/questions/8333279
复制相似问题