phpUnit失败并出现奇怪的错误

时间:2012-02-06 20:03:00

标签: php phpunit

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 个答案:

答案 0 :(得分:1)

找到答案,引自评论部分:

  

哦,该死的我发现了这个问题,这对我来说太愚蠢了。我有一个定义NULL的常量文件,用于在ORM库中使用。它在它自己的命名空间中定义,所以它不应该干扰全局常量,但我想常量对于命名空间来说有点棘手..

所以TIL,如果你想在命名空间中定义常量,只需将命名空间添加到文件顶部就不够了,你必须像这样定义常量

define('NAMESPACE\CONSTANT',        'value');
// or
define(__NAMESPACE__ . '\CONSTANT', 'value'); // to use the current namespace