2010-11-30 11 views
6

自分のコードのユニットテストを作成し始めました。私は過去にPHPUnitを使用していましたが、今日はボールを使用していません。私が新しいテストを作成する前に、私はいくつかの古いテストを実行して、それらがまだ有効かどうかを確認することにしましたが、PHPUnit自体から致命的なエラーが発生しました。私はUbuntuのCLIからPHPUnitを実行します。phpUnit致命的なエラー

phpunit TestCaseFile 

PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imap.ini on line 1 in Unknown on line 0 
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0 

Warning: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0 

Warning: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0 

Fatal error: Class 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' not found in /usr/share/php/PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php on line 60 

Call Stack: 
    0.0002  651688 1. {main}() /usr/bin/phpunit:0 
    0.0031 1173168 2. require('/usr/share/php/PHPUnit/TextUI/Command.php') /usr/bin/phpunit:48 
    0.0046 1485456 3. require_once('/usr/share/php/PHPUnit/TextUI/TestRunner.php') /usr/share/php/PHPUnit/TextUI/Command.php:47 
    0.0047 1503344 4. require_once('/usr/share/php/PHPUnit/Framework.php') /usr/share/php/PHPUnit/TextUI/TestRunner.php:47 
    0.0168 3848688 5. require('/usr/share/php/PHPUnit/Framework/TestCase.php') /usr/share/php/PHPUnit/Framework.php:68 
    0.0178 4091880 6. require_once('/usr/share/php/PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php') /usr/share/php/PHPUnit/Framework/TestCase.php:49 

ファイルが存在すること、ファイルパスなどが正しいことを確認しましたが、誰も助けてくれるように修正する方法はわかりません。

答えて

3

私はそれを修正した人は心配しません。

それは私がAPTでインストール私が最初にインストールPHPUnitのは、私はその後、

apt-get install phpunit

をインストールし直し

apt-get remove phpunit

を走ったことが判明したが、私に最新版を手に入れたし、すべてが正常に動作します。これが、同様の問題を抱えている他の人に役立つことを願って

22

OSXでこの問題が発生しました。私はPEAR経由でphpunitを削除し、ezコンポーネントチャンネルを再度追加し、phpunitを再インストールする必要がありました。

$ phpunit 
PHP Fatal error: Class 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' not found in /usr/lib/php/PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php on line 60 
$ sudo pear uninstall phpunit/PHPUnit 
uninstall ok: channel://pear.phpunit.de/PHPUnit-3.4.11 
$ sudo pear install phpunit/PHPUnit 
Unknown remote channel: components.ez.no 
Unknown remote channel: components.ez.no 
phpunit/PHPUnit can optionally use PHP extension "dbus" 
phpunit/PHP_CodeCoverage requires package "channel://components.ez.no/ConsoleTools" (version >= 1.6) 
phpunit/PHP_CodeCoverage can optionally use PHP extension "xdebug" (version >= 2.0.5) 
phpunit/PHPUnit requires package "phpunit/PHP_CodeCoverage" (version >= 1.0.2) 
phpunit/PHP_TokenStream requires package "channel://components.ez.no/ConsoleTools" (version >= 1.6) 
No valid packages found 
install failed 
$ sudo pear channel-discover components.ez.no 
Adding Channel "components.ez.no" succeeded 
Discovery of channel "components.ez.no" succeeded 
$ sudo pear update-channels 
.... 
$ sudo pear install phpunit/PHPUnit 
phpunit/PHPUnit can optionally use PHP extension "dbus" 
phpunit/PHP_CodeCoverage can optionally use PHP extension "xdebug" (version >= 2.0.5) 
downloading PHPUnit-3.5.10.tgz ... 
.... 
install ok: channel://components.ez.no/Base-1.8 
install ok: channel://components.ez.no/ConsoleTools-1.6.1 
install ok: channel://pear.phpunit.de/PHP_TokenStream-1.0.1 
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.0.3 
install ok: channel://pear.phpunit.de/PHPUnit-3.5.10 
$ phpunit 
PHPUnit 3.5.10 by Sebastian Bergmann. 

ソート済みです。

+1

修正プログラムはWindowsでもうまくいきます。単にsudoの部分を削除するだけです。 –

+0

優秀です。ありがとう:) –

+0

パーフェクト!ありがとう – Quentin

2

まず私はこの問題を持っていた:

梨/ XML_RPC2をだから私はUbuntuソフトウェアセンター経由のphp5-カールインストール "カール"

PHP拡張モジュールが必要です。

不明リモートチャネル:components.ez.no

依存関係は、したがって、インストールすることができませんでした

は、この問題がありました。これを実行した後:

sudoの梨components.ez.no

すべてがうまく働いていたチャンネルを発見。