2012-02-06 16 views
5
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 

La línea en cuestión tiene:PHPUnit fallar con el error raro

public function run(PHPUnit_Framework_TestResult $result = NULL)

Cuando quito el = NULL que pasa a través, pero no en otra línea, que también tiene una = NULL, lo jodido es que el error básicamente dice que TIENE que ser NULO, lo cual es.

no he modificado PHPUnit de cualquier manera, lo instalé usando el método descrito aquí:

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

Sinceramente, no entiendo por qué esto está ocurriendo algo me .. PHP hay micrófonos en cuenta que me está dando el error equivocado.

+0

¿Recientemente ha actualizado su PHP? ¿Qué versión y O/S estás ejecutando? Estoy de acuerdo, parece que PHP está roto. Esas líneas están bien. –

+0

No creo que PHP se haya actualizado recientemente, el único cambio realizado fue que actualicé de PhpUnit 3.6.3 a la última. Tengo PHP versión 5.3.6 en Ubuntu 11.10 /. – Naatan

+0

Después de eliminar el valor predeterminado, cuando falla en el siguiente NULL, ¿cuál es el mensaje de error en ese caso? – Spudley

Respuesta

1

encontrado la respuesta, citando a mí mismo de la sección de comentarios:

Oh damn I found the problem, and it's a silly one on my side. I had a constant file that was defining NULL for use in an ORM library. It's defined in it's own namespace so it shouldn't have interfered with the global constant, but I guess constants are a bit tricky with namespaces..

Así TIL, si desea definir constantes en un espacio de nombres, simplemente añadiendo espacio de nombres al principio del archivo no será suficiente, se tiene que definir las constantes como así

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