Llamada al método indefinido PHP CodeCoverage Filter:: getInstance()


Tengo una copia fresca de PHPUnit instalada en mi sistema (Ubuntu 11), pero cada vez que escribo phpunit en la consola obtengo el siguiente error:

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

Tengo la cobertura de código de PHPUnit instalada, por lo que sé:

>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

¿Por qué recibo este error y cómo puedo solucionarlo?

Author: Ian Hunter, 2012-02-08

7 answers

El script ejecutable que carga PHPUnit no debe haberse actualizado al ir a la versión 3.6.x. Vuelva a instalarlo.

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

Si esto no funciona, asegúrese de que el propio PEAR esté actualizado.

 34
Author: David Harkness,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:29:49

Ubuntu 11.10 ha tenido un problema durante un tiempo que no se ha solucionado. Esto es lo único que hará que phpunit trabaje con Pear. (Aparte de usar pera, puedes buscar una manera de hacerlo sin pera. Hay un artículo en línea sobre eso, pero no me gustaría que ese tipo de carga lo hiciera manualmente). Esto es lo único que funcionó para mí:

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
 118
Author: Anthony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-27 19:11:33

Para algunos, la solución de Anthony no funcionará completamente debido a Unknown remote channel: pear.symfony.com o phpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml".

Así que aquí está la solución actualizada que resuelve esto:

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
 23
Author: Starx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:58:16

El método getInstance() parece haber sido eliminado de la clase. https://github.com/sebastianbergmann/php-code-coverage/blob/master/PHP/CodeCoverage/Filter.php#L78

Use el constructor en su lugar si se encuentra con este error. Sin embargo, esto no es aplicable al puesto de apertura, ya que el comando vino de PHPUnit en sí.

 1
Author: Tails,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-01 15:56:37

Funciona para mí. al principio, no usé force force para el último comando, obtuve un error fatal que "Llama al método undefined PHP_CodeCoverage_Filter:: getInstance". Luego usé force la fuerza, lo que resolvió este problema.

 1
Author: casilin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-08 06:53:02

Mientras que tuve el mismo problema y logré resolverlo usando el ajuste correcto de las variables de entorno.

Puedes llegar a la solución aquí http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html

En resumen, tuve que volver a instalar PHPUnit usando pear después de establecer las variables correctas.

Usé una instalación de Ubuntu 12.10 y ahora funciona perfectamente.

 0
Author: Rabimba Karanjai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-04 18:15:42

Me encontré con el mismo problema, logré resolverlo usando composer

Prueba estos pasos -

Primero desinstalar phpunit

sudo apt-get remove phpunit

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

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

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

Para una instalación en todo el sistema a través de Composer, puede ejecutar:

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

También tendrá que asegurarse de que tiene ~/.composer / vendor / bin / en tu ruta.

 0
Author: Interpol3r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-05 08:45:49