сбой phpUnit со странной ошибкой - PullRequest
5 голосов
/ 07 февраля 2012
PHP Fatal error:  Default value for parameters with a class type hint can only be NULL in /usr/share/php/PHPUnit/Framework/Test.php on line 66
PHP Stack trace:
PHP   1. {main}() /usr/bin/phpunit:0
PHP   2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:46
PHP   3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:130
PHP   4. PHPUnit_Runner_BaseTestRunner->getTest() /usr/share/php/PHPUnit/TextUI/Command.php:150
PHP   5. PHPUnit_Runner_BaseTestRunner->loadSuiteClass() /usr/share/php/PHPUnit/Runner/BaseTestRunner.php:104
PHP   6. PHPUnit_Runner_StandardTestSuiteLoader->load() /usr/share/php/PHPUnit/Runner/BaseTestRunner.php:168
PHP   7. PHPUnit_Util_Fileloader::checkAndLoad() /usr/share/php/PHPUnit/Runner/StandardTestSuiteLoader.php:78
PHP   8. PHPUnit_Util_Fileloader::load() /usr/share/php/PHPUnit/Util/Fileloader.php:79
PHP   9. include_once() /usr/share/php/PHPUnit/Util/Fileloader.php:95
PHP  10. phpunit_autoload() /usr/share/php/PHPUnit/Autoload.php:0
PHP  11. require() /usr/share/php/PHPUnit/Autoload.php:203
PHP  12. phpunit_autoload() /usr/share/php/PHPUnit/Autoload.php:0

Строка, о которой идет речь, имеет:

public function run(PHPUnit_Framework_TestResult $result = NULL)

Когда я удаляю = NULL, она проходит, но не работает на другой строке, которая также имеет = NULL,испорчено то, что ошибка в основном говорит, что она должна быть NULL, что и есть.

Я не модифицировал PhpUnit, я установил его, используя метод, описанный здесь:

http://www.giocc.com/installing-phpunit-on-ubuntu-11-04-natty-narwhal.html

Честно говоря, я не понимаю, почему это происходит ... что-то подсказывает мне, что PHP содержит ошибки, из-за чего я ошибаюсь.

1 Ответ

1 голос
/ 08 февраля 2012

Нашел ответ, цитируя себя из раздела комментариев:

Черт, я нашел проблему, и это глупо с моей стороны.У меня был постоянный файл, который определял NULL для использования в библиотеке ORM.Он определен в своем собственном пространстве имен, поэтому он не должен мешать глобальной константе, но я полагаю, что константы немного сложны с пространствами имен ..

Так что TIL, если вы хотите определить константы вПространство имен, простого добавления пространства имен в начало файла будет недостаточно, вы должны определить константы следующим образом:

define('NAMESPACE\CONSTANT',        'value');
// or
define(__NAMESPACE__ . '\CONSTANT', 'value'); // to use the current namespace
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...