问题描述
我在我的系统上安装了一个新的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
为什么我会收到此错误,如何解决?
最佳解决办法
在转到3.6.x时,加载PHPUnit的可执行脚本不得更新。重新安装它。
sudo pear uninstall phpunit/PHPUnit
sudo pear install phpunit/PHPUnit
如果这不起作用,请使用make sure PEAR itself is up-to-date。
次佳解决办法
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
第三种解决办法
对于一些人来说,由于Unknown remote channel: pear.symfony.com
或phpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml"
,Anthony的solution将无法完全发挥作用。
这是解决此问题的升级解决方案:
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