システムにPHPUnitの新しいコピーがインストールされています(Ubuntu 11)が、コンソールでphpunit
と入力するたびに次のエラーが表示されます。
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
このエラーが発生する理由と修正方法を教えてください。
PHPUnitをロードする実行可能スクリプトは、3.6.xに移行するときに更新されていてはなりません。再インストールしてください。
Sudo pear uninstall phpunit/PHPUnit
Sudo pear install phpunit/PHPUnit
これが機能しない場合、 PEAR自体が最新であることを確認してください 。
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
一部の人にとっては、Anthonyの solution は、Unknown remote channel: pear.symfony.com
またはphpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml"
。
これが、これを解決するアップグレードされたソリューションです。
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
わたしにはできる。最初は、最後のコマンドに--forceを使用しませんでした。「未定義のメソッドPHP_CodeCoverage_Filter :: getInstanceを呼び出す」という致命的なエラーが発生しました。次に--forceを使用して、この問題を解決しました。
私は同じ問題を抱えていましたが、正しい環境変数を設定してそれを解決することができました。
ここで解決できます http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html
つまり、変数を正しく設定した後、pearを使用してPHPUnitを再インストールする必要がありました。
Ubuntu 12.10インストールを使用しましたが、今では完全に機能します。