2010-11-30 10 views
6

Ich habe gerade angefangen, Komponententests für meinen Code erneut zu erstellen. Ich hatte PHPUnit in der Vergangenheit, aber heute spielt es nicht Ball. Bevor ich irgendwelche neuen Tests gemacht habe, habe ich beschlossen, einige alte zu testen, um zu sehen, ob sie noch gültig sind, aber ich bekomme einen Fatal Error von PHPUnit selbst. Ich benutze PHPUnit von der CLI in Ubuntu.phpUnit Schwerwiegender Fehler

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 

ich geprüft, um sicherzustellen, dass die Dateien vorhanden sind, dass die Dateipfade usw. sind korrekt, aber ich weiß nicht wirklich, wie etwa gehen Festsetzung es kann jemand helfen?

Antwort

3

Keine Sorgen Leute, ich habe es behoben.

Es stellt sich heraus, dass, wenn ich lief ich

erste PHPUnit installiert ich mit APT installiert sind

apt-get remove phpunit

dann

installiert

apt-get install phpunit

Sie haben mir die neueste Version und alles funktioniert gut. Hoffe das hilft anderen Menschen mit einem ähnlichen Problem.

22

Ich hatte dieses Problem auf OSX. Ich musste phpunit über PEAR entfernen, den ez component channel wieder hinzufügen und phpunit neu installieren.

$ 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. 

Sortiert.

+1

Das Update funktioniert auch in Windows gut, Sie müssen nur die "Sudo" Teil :) –

+0

Excellent. Danke :) –

+0

Perfekt! Danke – Quentin

2

Zuerst hatte ich dieses Problem:

Birne/XML_RPC2 PHP-Erweiterung erfordert "curl"

So installierte ich php5-curl über Ubuntu Software Center.

Dann gab es dieses Problem:

Unbekannt Remote-Kanal: components.ez.no

Die Abhängigkeiten daher nicht installiert werden können. Nachdem dies zu tun:

sudo pear channel-discover nur components.ez.no

alles hat gut funktioniert.

Verwandte Themen