PhPunit need_once() error

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

当我运行一个测试时,我会得到以下错误:

PHP 警告: need _ once (PHPUnit/Util/Filter.PHP) : 未能打开流: 第44行的/usr/bin/phPunit 中没有这样的文件或目录

PHP 致命错误: need _ once () : 在第44行/usr/bin/phPunit 中,打开错误需要‘ PHPUnit/Util/Filter.PHP’(include _ path =’. :/usr/bin/PHP’)

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

知道是什么引起的吗?

61554 次浏览

(include _ path =’. :/usr/bin/php’)

是否将它添加到 include _ path?

如果我们看到您的 ini 文件,以及其中的 include _ path 片段,也许会有所帮助..。

如果您是第一次使用 PEAR,那么您可能没有正确配置包含路径。看看 在 PEAR 手册的适当部分

我找到了!

看起来 PEAR 在/usr/share/PEAR 中安装了 PHPUnit。不知道为什么,但它就在那里。一定是(mt)的东西。

不管怎样,我都准备好了,谢谢你的帮助。

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

在我的例子中,我通过将 /usr/share/php/PEAR添加到 include_path来解决这个问题。

我用的是 Ubuntu 10.04.2。

我在 OS X 上遇到了这个问题。用以下命令修复了这个问题,这些命令强制重新安装所有的 php 依赖项,其中包括来自其他通道的一些尚未配置的软件包:

sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear install --alldeps phpunit/PHPUnit

更新: 截至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

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

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

特别是这个针对 ubuntu11.04的评论,可能也适用于其他一些人

尽管我按照上面的建议做了这些步骤,但是我没有让它工作,但是在我把梨从1.9.1升级到1.9.2之后,它就完美地工作了

Speshu@speshu-笔记本电脑: ~ $sudo pear update 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"

我也有同样的问题。Netbeans 报告说 phPunit 版本太旧了(事实并非如此)。运行 phPunit 脚本可以直接显示上面的消息。

我解决了这个问题,并补充道:

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

/etc/php5/cli/php.ini

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

我最初的问题是,我无法让命令行版本的 php (yum install php 或 yum install php-cli)升级到 = > php5.2.7

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

然后我重新按照 phPunit 的梨安装步骤

但是当我运行 phPunit 的时候,它仍然需要代码覆盖的东西。

因此,我在/var/php5/lib/PHP/PHP/CodeCoverage 下寻找代码覆盖率,并将其添加到 PHP.ini 中的 include 路径 Include _ path = “ . :/var/php5/lib/php/”

请确保将其添加到包含路径中而不使用/PHP,因为 phPunit 从 PHP/(注意大写)开始查找代码覆盖率 打开失败需要“ PHP/CodeCoverage/Filter.php”

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

  1. 装梨

    sudo apt-get install php-pear
    
  2. Install phpunit by using pear.

    pear config-set auto_discover 1
    pear install pear.phpunit.de/PHPUnit
    
  3. Install phpunit/Selenium, but first you need to install curl module

    sudo apt-get install php5-curl
    pear install phpunit/PHPUnit_Selenium
    

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

对我来说,分批测试有帮助。

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

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

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

Ubuntu 12.04:

sudo pear channel-discover pear.symfony.com
sudo pear install --alldeps phpunit/PHPUnit

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

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