Call to undefined method PHP_CodeCoverage_Filter::getInstance()

橙三吉。 提交于 2019-11-27 17:41:41
David Harkness

The executable script that loads PHPUnit must not have been updated when going to 3.6.x. Reinstall it.

sudo pear uninstall phpunit/PHPUnit
sudo pear install phpunit/PHPUnit

If this doesn't work, make sure PEAR itself is up-to-date.

Anthony

Ubuntu 11.10 has had an issue for a while that hasn't been fixed. This is the only thing that will get phpunit to work with pear. (Outside of using pear you can look up a way to do it without pear. There is an article online about that but I wouldn't want that kind of burden to do it manually). This is the only thing that worked for me:

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
Starx

For some, Anthony's solution will not work fully because of the Unknown remote channel: pear.symfony.com or phpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml".

SO here is the upgraded solution that solves this:

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

The method getInstance() seems to have been dropped from the class. https://github.com/sebastianbergmann/php-code-coverage/blob/master/PHP/CodeCoverage/Filter.php#L78

Use the constructor instead if you come across this error. However, this is not applicable to the opening post as the command came from PHPUnit itself.

it works for me. at the beginning, I didn't use --force for the last command, I got a fatal error that "Call to undefined method PHP_CodeCoverage_Filter::getInstance". Then I used --force, which resolved this issue.

While i had the same problem and managed to solve it using setting correct environment variables.

You can get to the solve here http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html

In short I had to re-install PHPUnit using pear after setting the variables correct.

I used a Ubuntu 12.10 installation and it works perfectly now.

Interpol3r

I came across the same problem, managed to solve it using composer

Try these steps -

First uninstall phpunit

sudo apt-get remove phpunit

Install composer - http://getcomposer.org/doc/01-basic-usage.md#installation

$ curl -sS https://getcomposer.org/installer | php

Install phpunit - http://phpunit.de/manual/3.7/en/installation.html

For a system-wide installation via Composer, you can run:

$ composer global require 'phpunit/phpunit=3.7.*'

You will also have to make sure that you have ~/.composer/vendor/bin/ in your path.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!