2012-02-08 24 views
48

Mam nową kopię zainstalowanego na moim systemie (Ubuntu 11) PHPUnit, ale gdy wpisuję phpunit w konsoli pojawia się następujący błąd:Zadzwoń do niezdefiniowanej metody PHP_CodeCoverage_Filter :: getInstance()

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

mam zainstalowane pokrycie kodu phpunit w miarę znam:

>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

Dlaczego pojawia się ten błąd i jak mogę to naprawić?

+1

Jakie wersje PHPUnit jest zainstalowane? 'pear info phpunit/PHPUnit' Wydaje się, że skrypt wykonywalny' phpunit' nie został zaktualizowany do wersji 3.6.x. –

+0

'Data premiery 2012-01-27 10:49:19 Wersja wydania 3.6.10 (stabilna)' –

+1

Z końcem 2014 roku nie można już zainstalować phpunitu przez gruszkę. https://github.com/sebastianbergmann/phpunit/wiki/End-of-Life-for-PEAR-Installation-Method – siliconrockstar

Odpowiedz

34

Skrypt wykonywalny, który ładuje PHPUnit, nie mógł zostać zaktualizowany podczas przejścia do wersji 3.6.x. Zainstaluj ponownie.

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

Jeśli to nie zadziała, make sure PEAR itself is up-to-date.

+0

Odinstalowanie i ponowne zainstalowanie działa PHPUnit; Dziękuję Ci. –

+4

Czy możesz napisać tutaj, jak uczynić PEAR na bieżąco? Link nie kończy się teraz. – sensorario

118

Ubuntu 11.10 ma problem przez jakiś czas, który nie został naprawiony. Jest to jedyna rzecz, która pozwoli phpunitowi pracować z gruszką. (Poza używaniem gruszki można znaleźć sposób na to, aby zrobić to bez gruszki, istnieje artykuł o tym w Internecie, ale nie chciałbym, aby tego rodzaju obciążenia robiono ręcznie). Jest to jedyna rzecz, która pracowała dla mnie:

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 
+9

To rozwiązanie działało dla mojej (nowej) wersji 12.04. –

+0

To również zadziałało dla mojego (starego) 12.04 włamania (10.04 -> 11.04 -> 11.10 -> 12.04) – Jens

+1

Supergreen, uratował mi dużo czasu! Działa jak marzenie. –

23

Dla niektórych Anthony's solution nie będzie działać poprawnie z powodu Unknown remote channel: pear.symfony.com lub.

więc o to zmodernizowane rozwiązanie rozwiązuje to:

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 
+0

działa idealnie! dzięki kolego :) – Zabs

+0

Po wielu wędkowaniu, aby uzyskać phpUnit pracujący na mojej maszynie Ubuntu 12.04 VM, to rozwiązanie sprawdziło się. Dzięki! –

+0

Naprawiono Ubuntu 12.04 - nie widzisz, na co wszyscy narzekali, to było * więc * proste! – jmc

0

podczas gdy miałem ten sam problem i udało się go rozwiązać stosując odpowiednie ustawienie zmiennych środowiskowych.

można dostać się do rozwiązania tutaj http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html

W skrócie musiałem ponownie zainstalować PHPUnit użyciem gruszkę po ustawieniu zmiennych poprawne.

Użyłem instalacji Ubuntu 12.10 i teraz działa idealnie.

1

to działa dla mnie. na początku nie użyłem - siły dla ostatniego polecenia, dostałem fatalny błąd, który "Wezwanie do niezdefiniowanej metody PHP_CodeCoverage_Filter :: getInstance". Następnie użyłem --force, która rozwiązała ten problem.

0

natknąłem się na ten sam problem, udało się go rozwiązać za pomocą kompozytor

Spróbuj te kroki -

najpierw odinstalować phpunit

sudo apt-get remove phpunit 

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

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

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

przypadku instalacji całego systemu poprzez Composer, można uruchomić:

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

Trzeba również upewnić się, że masz ~/.composer/sprzedawca/bin/na swojej drodze.

Powiązane problemy