2012-02-08 65 views
48

我已經安裝了我的系統(Ubuntu的11)上的PHPUnit的全新副本,但每當我在控制檯中我得到以下錯誤類型phpunit調用未定義的方法PHP_CodeCoverage_Filter ::的getInstance()

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

爲什麼我得到這個錯誤,我該如何解決它?

+1

安裝了哪些版本的PHPUnit? 'pear info phpunit/PHPUnit'看來'phpunit'可執行腳本沒有更新到3.6.x. – 2012-02-08 01:05:09

+0

'發行日期2012-01-27 10:49:19 發行版本3.6.10(穩定)' – 2012-02-08 01:26:09

+1

截至2014年底,您無法通過pear安裝phpunit。 https://github.com/sebastianbergmann/phpunit/wiki/End-of-Life-for-PEAR-Installation-Method – siliconrockstar 2015-02-20 03:36:32

回答

34

加載PHPUnit的可執行腳本在進入3.6.x時不得更新。重新安裝它。

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

如果這不起作用,make sure PEAR itself is up-to-date

+0

卸載並重新安裝PHPUnit工作;謝謝。 – 2012-02-08 17:58:37

+4

你能在這裏寫下如何讓PEAR保持最新嗎?鏈接現在不存在。 – sensorario 2013-04-10 08:47:36

118

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

此解決方案適用於我的(新)12.04安裝。 – 2012-05-26 03:44:31

+0

它也適用於我的(舊)12.04 insall(10.04 - > 11.04 - > 11.10 - > 12.04) – Jens 2012-06-10 09:10:35

+1

Supergreen,爲我節省了很多時間!奇蹟般有效。 – 2012-06-17 11:52:54

23

對於一些人來說,由於Unknown remote channel: pear.symfony.comphpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml",安東尼的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 
+0

上工作完美!謝謝隊友:) – Zabs 2013-05-04 12:16:32

+0

經過大量的釣魚,讓phpUnit在我的Ubuntu 12.04虛擬機上工作後,這個解決方案爲我工作。謝謝! – 2013-09-17 18:09:35

+0

修復了Ubuntu 12.04 - 沒有看到大家都在抱怨什麼,那是* so * simples! – jmc 2013-09-27 13:11:24

1

它適合我。在開始時,我沒有對最後一個命令使用--force,我得到一個致命錯誤,「調用未定義的方法PHP_CodeCoverage_Filter :: getInstance」。然後我用--force,解決了這個問題。

0

我碰到了同樣的問題,管理使用作曲家

嘗試下列步驟來解決這個問題 -

先卸載PHPUnit的

sudo apt-get remove phpunit 

安裝作曲家 - http://getcomposer.org/doc/01-basic-usage.md#installation

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

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

對於通過作曲家全系統的安裝,你可以運行:

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

你還必須確保你有〜/ .composer /供應商/斌/在你的路徑。

相關問題