首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHPUnit: Warning: require(PHPUnit/Autoload.php):无法打开流:第42行的/usr/local/bin/phpunit中没有这样的文件或目录

PHPUnit: Warning: require(PHPUnit/Autoload.php):无法打开流:第42行的/usr/local/bin/phpunit中没有这样的文件或目录
EN

Stack Overflow用户
提问于 2011-12-01 05:37:03
回答 6查看 36.2K关注 0票数 18

运行时

  • phpunit

我得到了错误

代码语言:javascript
复制
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行显示以下内容:

代码语言:javascript
复制
require 'PHPUnit/Autoload.php';

有什么建议如何解决这个问题吗?

更新(1):

我在/etc/中缺少php.ini,所以我用符号链接它来读取MAMP php.ini。现在我得到了

代码语言:javascript
复制
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

正在运行

  • phpunit

正在运行,但未提供任何输出。

有什么建议下一步要检查什么?

更新(2):

这个问题的根本原因可能与问题有关。

EN

回答 6

Stack Overflow用户

发布于 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

  • Install
  1. 的最新php归档

在安装过程中,它会检测php.ini中的include_path是否不包含PEAR PHP目录。如果有选择,您可以选择让它自动为您修复它。

票数 13
EN

Stack Overflow用户

发布于 2011-12-01 08:24:28

您的PHP include path上必须有包含PHPUnit源文件的文件夹。此外,PHPUnit/Autoload.php是在3.6版本中添加的,您有可能使用较旧的3.5.x源文件夹。使用以下命令检查列出的文件夹

代码语言:javascript
复制
php -r 'foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;'

(或在Windows上)

代码语言:javascript
复制
php -r"foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;"

并确保其中一个文件包含带有Autoload.phpPHPUnit文件夹。

更新:关于您的更新,您可能希望从包含路径中删除/usr/local/share/pear/PHPUnit,因为您包含的PHPUnit/Autoload.php应该位于已在包含路径中的/usr/local/share/pear中。

要确保PHPUnit正常工作,首先运行phpunit --version,这样您就可以看到已安装的版本。在输出任何内容之前,PHPUnit会实例化它计划运行的所有测试用例。如果您的任何测试用例在加载时导致致命错误,有时根本不会显示任何输出。这非常令人沮丧。首先创建最简单的测试用例,它不使用您的任何代码。

代码语言:javascript
复制
class MyTest extends PHPUnit_Framework_TestCase {
    function testThatItWorks() {
        self::assertTrue(true);
    }
}

运行这个测试应该会产生一个通过的测试。尝试并粘贴您在问题中看到的内容。

票数 5
EN

Stack Overflow用户

发布于 2014-07-25 02:21:51

当我从我的本地目录运行phpunit.phar时,我遇到了这个问题,而且我还将PHPUnit安装为composer依赖项。删除PHPUnit composer依赖项解决了我的问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8333279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档