当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

我在我的系统上安装了一个新的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.comphpunit/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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6455.html,未经允许,请勿转载。