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

udo*_*udo 18 phpunit mamp osx-lion

跑步的时候

  • PHPUnit的

我收到错误

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)

赛跑

  • PHPUnit的

正在运行但不提供输出.

有什么建议接下来要检查什么?

更新(2):

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

war*_*hod 13

我在MAC OSX Lion上遇到了类似的问题.我用PEAR包管理器安装了phpunit,当我尝试运行它时,我得到了udo所描述的错误.我能够通过以下简单步骤解决它:

  1. 获取梨的最新php存档 curl http://pear.php.net/go-pear.phar > go-pear.php
  2. 使用安装存档 sudo php -q go-pear.php

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

  • 非常感谢,我想添加一些东西,在这些步骤后我必须使用以下命令再次安装phpunit:sudo pear channel-discover pear.phpunit.de sudo pear channel-discover components.ez.no sudo pear channel-discover pear.symfony-project.com sudo pear install phpunit/PHPUnit (4认同)

Dav*_*ess 5

您必须在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)

运行此测试应该产生一次通过测试.试试并粘贴您在问题中看到的内容.


eda*_*dan 5

当我phpunit.phar从本地目录运行时遇到了这个问题,但是还安装了PHPUnit作为作曲家依赖项.删除PHPUnit编写器依赖项修复了我的问题.