phpunit require_once()错误

use*_*305 79 php installation phpunit filepath php-ini

我最近通过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进行一些修改.但这没有做到.

知道可能导致这种情况的原因吗?

aru*_*s_t 123

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

sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit
Run Code Online (Sandbox Code Playgroud)

以下是较旧的答案.这是一个众所周知的问题,虽然差不多一年半过去了.在这里阅读它

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

你需要做的是这里:

通过PEAR安装代码

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

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/PHP_CodeCoverage
Run Code Online (Sandbox Code Playgroud)

  • 在Ubuntu 12.04上,我还必须输入`sudo pear channel-discover pear.symfony.com`然后成功使用`sudo pear install --alldeps phpunit/PHPUnit` (7认同)
  • 对我来说正确的解决方案是你给出的第一个链接:https://bugs.launchpad.net/ubuntu/+source/phpunit/+bug/701544/comments/6 (6认同)
  • 我必须在**php.ini文件,`/ etc/php5/apache2/php.ini`,`/ etc/php5/cli/php.ini`中设置include_path,并且必须使其包含父项和子目录:`include_path =".:/ usr/share/php:/ usr/share/php/PEAR"` (2认同)
  • 做记录!`你已经通过PEAR安装了PHPUnit.不再支持此安装方法,并且不会在2014年12月31日之前关闭http://pear.phpunit.de/.`...这将使此答案无效. (2认同)

Ste*_*een 34

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

sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear install --alldeps phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)

  • NVM.它安装得很好,但是当我尝试运行任何实际测试时,我得到`PHP致命错误:在第46行的/usr/share/php/PHPUnit/Framework.php中调用未定义的方法PHP_CodeCoverage_Filter :: getInstance() (4认同)
  • 这个解决方案对我有用.Ubuntu 11.04 (3认同)
  • 对我来说,我做了这个然后得到了一个错误,我认为是由http://stackoverflow.com/a/9186866/470749 Ubuntu 12.04解决的 (2认同)

jsp*_*shu 13

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

特别是对ubuntu 11.04的评论,也可能是其他一些评论

即使我按照上面的建议做了这些步骤,我也没有让它工作,但是在我将梨从1.9.1升级到1.9.2之后,它的工作完全正常

speshu @ speshu-laptop:〜$ sudo梨升级梨

   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"
Run Code Online (Sandbox Code Playgroud)


jer*_*oen 8

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


med*_*iev 2

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

确定已将其添加到 include_path 中吗?

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