79

我最近通过 pear 安装程序在我的服务器上安装了 phpunit。

当我去运行测试时,我收到以下错误:

PHP 警告:require_once(PHPUnit/Util/Filter.php):无法打开流:第 44 行的 /usr/bin/phpunit 中没有这样的文件或目录

PHP 致命错误:require_once():无法在第 44 行的 /usr/bin/phpunit 中打开所需的 'PHPUnit/Util/Filter.php' (include_path='.:/usr/bin/php')

在进行了一些搜索之后,我尝试对服务器上我的 php.ini 文件中的 include_path 进行一些修改。但这并没有起到任何作用。

知道可能是什么原因造成的吗?

4

17 回答 17

123

更新:截至 2013 年 11 月和 Ubuntu 12.04,这两个命令就足够了:

sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit

以下是较旧的答案。这是一个已知问题,尽管已经过去了将近一年半。在这里阅读

必须安装代码覆盖率才能使 phpunit 正常工作

您需要做的是在这里介绍:

通过 PEAR 安装代码覆盖率

基本上你必须输入(如果你没有权限,使用 sudo,假设 phpunit 已经安装):

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/PHP_CodeCoverage
于 2011-05-09T16:26:31.563 回答
34

I had this problem on OS X. Fixed it with the following commands which force all the php dependencies to be reinstalled, which included a couple of packages from other channels that were not already configured:

sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear install --alldeps phpunit/PHPUnit
于 2011-04-25T07:49:02.767 回答
13

https://bugs.launchpad.net/ubuntu/+source/phpunit/+bug/701544

and specially this comment for ubuntu 11.04 and may be for some others too

even though i did ths steps as recommended above, i didn't get it to work but after i upgraded pear from 1.9.1 to 1.9.2 it's working perfectly just do this

speshu@speshu-laptop:~$ sudo pear upgrade pear

   downloading PEAR-1.9.2.tgz ...
   Starting to download PEAR-1.9.2.tgz (295,120 bytes)
    .....................................................done: 295,120 bytes
    upgrade ok: channel://pear.php.net/PEAR-1.9.2
    PEAR: Optional feature webinstaller available (PEAR's web-based installer)
    PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
    PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
    PEAR: To install optional features use "pear install pear/PEAR#featurename"
于 2011-05-23T06:46:11.657 回答
8

如果您是第一次使用 PEAR,可能是您没有正确配置包含路径。查看PEAR 手册中的相应部分

于 2009-10-07T00:39:21.977 回答
4

https://github.com/sebastianbergmann/php-code-coverage

sb@ubuntu ~ % pear channel-discover pear.phpunit.de
Adding Channel "pear.phpunit.de" succeeded
Discovery of channel "pear.phpunit.de" succeeded

sb@ubuntu ~ % pear channel-discover components.ez.no
Adding Channel "components.ez.no" succeeded
Discovery of channel "components.ez.no" succeeded

sb@vmware ~ % pear install phpunit/PHP_CodeCoverage
downloading PHP_CodeCoverage-0.9.0.tgz ...
Starting to download PHP_CodeCoverage-0.9.0.tgz (108,376 bytes)
.........................done: 108,376 bytes
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-0.9.0
于 2011-05-18T04:22:26.283 回答
2

我找到了!

看起来 PEAR 在 /usr/share/pear 中安装了 PHPUnit。不知道为什么,但这就是它所在的地方。必须是(mt)的东西。

无论如何,我都准备好了。谢谢您的帮助。

于 2009-10-07T01:10:25.667 回答
2

(include_path='.:/usr/bin/php')

确定将其添加到 include_path 中吗?

如果我们看到您的 ini 文件以及其中的 include_path 片段,这也可能会有所帮助...

于 2009-10-06T23:45:16.913 回答
2

如果您的 PHPUnit 安装过时或不完整,也会发生这种情况。请注意,设置 PEAR 后,您必须添加PHPUnit.de 频道才能获得最新的软件包。

于 2010-02-06T03:33:08.207 回答
2

就我而言,我通过添加/usr/share/php/PEARinclude_path.

我正在使用 Ubuntu 10.04.2。

于 2011-02-23T18:32:06.567 回答
1

如果您在访问组件时遇到问题,请尝试其他方式。

  1. 安装梨

    sudo apt-get install php-pear
    
  2. phpunit使用 pear安装。

    pear config-set auto_discover 1
    pear install pear.phpunit.de/PHPUnit
    
  3. 安装phpunit/Selenium,但首先你需要安装curl模块

    sudo apt-get install php5-curl 
    pear install phpunit/PHPUnit_Selenium
    
于 2012-04-30T15:07:44.383 回答
0

对我来说,将测试分成多个批次有帮助。

于 2012-12-27T08:19:59.317 回答
0

您可以通过重新定义 PEAR 中的环境变量来解决此问题。这就是我解决问题的方法,我使用了 Ubuntu 12.10

http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html

简而言之,它定义了路径,然后重新安装 phpunit

于 2013-01-04T19:50:37.343 回答
0

我遇到了同样的问题。Netbeans 报告 phpunit 版本太旧(事实并非如此)。直接运行 phpunit 脚本会显示上述消息。

我解决了它添加:

include_path=".:/usr/share/php"

/etc/php5/cli/php.ini

请注意,php.ini 文件是用于 php CLI(命令)的文件,而不是用于 apache 的 php.ini!

于 2011-08-01T03:52:16.290 回答
0

我在 Windows 8 上遇到了同样的问题 与上面的答案类似,我需要启动命令行,但请确保以管理员身份运行 cmd.exe。然后这两个命令

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit
于 2014-09-11T14:01:32.990 回答
0

我最初的问题是我无法获得 php 的命令行版本(yum install php 或 yum install php-cli)升级到 => php5.2.7 我被困在 5.1 版本

我已经编译了用于 apache 的 php 5.3.3。因此,我在 /var/php5/bin/php 中设置了从 /usr/bin/php (命令行默认值)到我的编译版本的符号链接,以获取命令行 php 报告 5.3.3

然后我重新执行了 phpunit 的梨安装步骤

但是当我运行 phpunit 时,它仍然需要代码覆盖率。

所以我在 /var/php5/lib/php/PHP/CodeCoverage 下寻找代码覆盖率并将其添加到 php.ini include_path=".:/var/php5/lib/php/" 中的包含路径

确保将其添加到不带 /PHP 的包含路径中,因为 phpunit 从 PHP/ (注意大写)开始寻找代码覆盖率 失败打开所需的 'PHP/CodeCoverage/Filter.php'

于 2011-10-19T19:54:00.920 回答
0

我有这个问题。我正在开发一个 zend 框架站点。最后,我设法通过删除 zend 安装并删除/注释 apache 和 cli 中的浴 php.ini 文件中的包含路径来解决它。要使用 zend 开发站点,我们不需要安装 zend。我们可以将库复制到我们的站点文件夹

于 2012-05-04T06:19:21.470 回答
0

Ubuntu 12.04:

sudo pear channel-discover pear.symfony.com
sudo pear install --alldeps phpunit/PHPUnit
于 2013-09-19T09:51:20.300 回答