2012-02-06 43 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 

Dòng trong câu hỏi có:phpUnit thất bại với lỗi lạ

public function run(PHPUnit_Framework_TestResult $result = NULL)

Khi tôi loại bỏ các = NULL nó đi qua nhưng không thành công trên một dòng khác mà cũng có một = NULL, điều hơi say lên là rằng lỗi cơ bản nói rằng nó là NULL, mà nó IS.

tôi đã không sửa đổi PHPUnit trong bất kỳ cách nào, tôi cài đặt nó sử dụng phương pháp này được mô tả ở đây:

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

Thực sự tôi không hiểu tại sao điều này xảy ra .. một cái gì đó nói với tôi PHP được nghe trộm trong rằng nó cho tôi lỗi sai.

+0

Gần đây bạn có cập nhật PHP của mình không? Bạn đang chạy phiên bản nào và O/S? Tôi đồng ý có vẻ như PHP bị hỏng. Những dòng này là tốt. –

+0

Tôi không nghĩ rằng PHP đã được cập nhật gần đây, thay đổi duy nhất được thực hiện là tôi cập nhật từ PhpUnit 3.6.3 đến mới nhất. Tôi có phiên bản PHP 5.3.6 trên Ubuntu 11.10 /. – Naatan

+0

Sau khi bạn loại bỏ mặc định, khi nó thất bại trên NULL tiếp theo, thông báo lỗi trong trường hợp đó là gì? – Spudley

Trả lời

1

Tìm thấy câu trả lời, trích dẫn bản thân mình từ phần ý kiến:

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

Vì vậy TIL, nếu bạn muốn xác định hằng số trong một không gian tên, chỉ cần thêm không gian tên để phía trên cùng của tập tin sẽ không đủ, bạn phải xác định các hằng số như vậy

define('NAMESPACE\CONSTANT',  'value'); 
// or 
define(__NAMESPACE__ . '\CONSTANT', 'value'); // to use the current namespace 
Các vấn đề liên quan