Фатальная ошибка phpUnit - PullRequest
6 голосов
/ 30 ноября 2010

Я только что снова начал создавать модульные тесты для своего кода. Раньше PHPUnit работал, но сегодня он не играет в мяч. Прежде чем создавать какие-либо новые тесты, я решил запустить несколько старых, чтобы проверить, все ли они действительны, но я получаю фатальную ошибку от самого PHPUnit. Я запускаю PHPUnit из CLI в Ubuntu.

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 ]

22 голосов
/ 31 января 2011

У меня была эта проблема на OSX. Мне пришлось удалить phpunit через PEAR, снова добавить канал компонента 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.

отсортирован.

3 голосов
/ 30 ноября 2010

Не волнуйтесь, люди, я исправил это.

Оказывается, когда я впервые установил PHPUnit, я установил с APT, я запустил

apt-get remove phpunit

, а затем переустановил

apt-get install phpunit

Получил последнюю версию и все работает отлично.Надеюсь, что это помогает другим людям с подобной проблемой.

2 голосов
/ 01 июня 2011

Сначала у меня возникла эта проблема:

pear / XML_RPC2 требует PHP-расширения "curl"

Поэтому я установил php5-curl через Ubuntu Software Center.

Тогда возникла эта проблема:

Неизвестный удаленный канал: components.ez.no

Поэтому не удалось установить зависимости.После этого:

sudo pear channel-Discover components.ez.no

все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...