ubuntu - example - phpunit tutorial
Llamada al método indefinido PHP_CodeCoverage_Filter:: getInstance() (7)
Tengo una copia nueva de PHPUnit instalada en mi sistema (Ubuntu 11), pero cada vez que 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, que yo sepa:
>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?
El método getInstance()
parece haberse descartado de la clase. https://github.com/sebastianbergmann/php-code-coverage/blob/master/PHP/CodeCoverage/Filter.php#L78
Use el constructor si encuentra este error. Sin embargo, esto no es aplicable a la publicación inicial ya que el comando proviene de PHPUnit.
El script ejecutable que carga PHPUnit no debe haberse actualizado al ir a 3.6.x. Reinstalarlo.
sudo pear uninstall phpunit/PHPUnit
sudo pear install phpunit/PHPUnit
Si esto no funciona, asegúrese de que PEAR esté actualizado .
Encontré el mismo problema, logré resolverlo usando el compositor
Pruebe estos pasos:
Primero desinstala phpunit
sudo apt-get remove phpunit
Instalar compositor - http://getcomposer.org/doc/01-basic-usage.md#installation
$ curl -sS https://getcomposer.org/installer | php
Instala 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 deberá asegurarse de tener ~ / .composer / vendor / bin / en su ruta.
Para algunos, la solution de Anthony no funcionará completamente debido al 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
Si bien tuve el mismo problema y logré resolverlo usando las variables de entorno correctas.
Puede obtener 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 pera después de establecer las variables correctas.
Usé una instalación Ubuntu 12.10 y funciona perfectamente ahora.
Ubuntu 11.10 ha tenido un problema por un tiempo que no se ha solucionado. Esto es lo único que hará que phpunit funcione con pera. (Aparte de usar pera, puedes buscar una forma de hacerlo sin pera. Hay un artículo en línea al respecto, pero no me gustaría ese tipo de carga para hacerlo 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
esto funciona para mi. al principio, no usé --force para el último comando, recibí un error fatal que decía "Call to undefined method PHP_CodeCoverage_Filter :: getInstance". Luego usé --force, que resolvió este problema.