调用未定义的方法PHP_CodeCoverage_Filter :: getInstance()

Ian*_*ter 48 ubuntu pear phpunit

我在我的系统上安装了一个新的PHPUnit副本(Ubuntu 11),但每当我输入phpunit控制台时,我都会收到以下错误:

PHP Fatal error: Call to undefined method PHP_CodeCoverage_Filter::getInstance() in /usr/bin/phpunit on line 39

据我所知,我安装了PHPUnit的代码覆盖率:

>sudo pear install phpunit/PHP_CodeCoverage

phpunit/PHP_CodeCoverage is already installed and is the same as the released version 1.1.1

install failed

为什么我会收到此错误,如何解决?

小智 118

Ubuntu 11.10已经有一段时间没有修复问题了.这是唯一能让phpunit与pear一起工作的东西.(除了使用梨之外,你可以在没有梨的情况下查找一种方法.有一篇关于此的文章,但我不希望手动这样做的负担).这是唯一对我有用的东西:

sudo apt-get remove phpunit

sudo pear channel-discover pear.phpunit.de

sudo pear channel-discover pear.symfony-project.com

sudo pear channel-discover components.ez.no

sudo pear update-channels

sudo pear upgrade-all

sudo pear install --alldeps phpunit/PHPUnit

sudo pear install --force --alldeps phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案适用于我的(新)12.04安装. (9认同)
  • 我找到了另一个没有最后一行的解决方案(`sudo pear install --force --alldeps phpunit/PHPUnit`).通过运行最后一行,最后,它立即起作用. (3认同)

Dav*_*ess 34

在转到3.6.x时,加载PHPUnit的可执行脚本不得更新.重新安装它.

sudo pear uninstall phpunit/PHPUnit
sudo pear install phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请确保PEAR本身是最新的.

  • 你能在这里写一下如何让PEAR更新吗?该链接现在不退出. (4认同)

Sta*_*arx 23

对于一些人来说,安东尼的解决方案不会完全有效,因为Unknown remote channel: pear.symfony.comphpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml".

这是解决此问题的升级解决方案:

sudo apt-get remove phpunit

sudo pear channel-discover pear.phpunit.de

sudo pear channel-discover pear.symfony-project.com

sudo pear channel-discover components.ez.no

sudo pear channel-discover pear.symfony.com

sudo pear update-channels

sudo pear upgrade-all

sudo pear install pear.symfony.com/Yaml

sudo pear install --alldeps phpunit/PHPUnit

sudo pear install --force --alldeps phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)