2010-07-03 24 views
3

我對PHP使用simpletest:http://www.simpletest.org/不熟悉,並且在我的服務器上使用PHP 5.2 *當我嘗試根據他們的演示設置一個初始測試腳本時,我得到一個頁面充滿了如下所示的錯誤......我不確定這是否與簡單測試不兼容的PHP 5. *或什麼問題是,任何洞察力的讚賞..看來,我仍然可以使用庫,因爲它返回什麼似乎是適當的錯誤下面,但我想了解這個,所以我可以修復它..謝謝使用Simpletest PHP「對PHP進行單元測試」,得到錯誤消息「不贊成使用:通過引用指定新的返回值已被棄用」

這裏是我用來調用一個簡單測試函數的php代碼示例

<?php 

require_once('C:/wamp/www/external/simpletest/simpletest/autorun.php'); 


class TestOfLogging extends UnitTestCase { 
    function testFirstLogMessagesCreatesFileIfNonexistent() { 
     @unlink(dirname(__FILE__) . '/../temp/test.log'); 
     $log = new Log(dirname(__FILE__) . '/../temp/test.log'); 
     $log->message('Should write this to a file'); 
     $this->assertTrue(file_exists(dirname(__FILE__) . '/../temp/test.log')); 
    } 
} 
?> 

和錯誤,我得到:

Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\external\simpletest\simpletest\unit_tester.php on line 74 

Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\external\simpletest\simpletest\unit_tester.php on line 89 

回答

2

「已過時」意味着舊的東西,時尚,那可能不會被PHP的未來版本的支持完成。它不應該是有害的,但應由最簡單的開發人員照顧。你下載了最新版本的simpletest嗎? 如果您想了解,請查看第74行和第89行的unit_tester.php。

0

您確定在運行單元測試時使用的是5.2而不是5.3嗎?我似乎記得在5.3下運行的PEAR軟件包看到這些錯誤。

0

我也遇到了這個問題,而通過最簡單的教程。

爲了使這些消息消失,我將我的php.ini文件中的display_errors = On設置更改爲display_errors = Off

1

而不是切換所有錯誤,只是switch off deprecation warnings。另一種方法是對所有最簡單的文件進行查找和替換:找到「&新」並替換爲「新」。通過引用(&new)的new僅僅是deprecated in PHP5.3,所以希望這將在下一個SimpleTest版本中得到修復。

+0

自從PHP 5.2發佈以來(不再需要使用'&new'(並且從早期版本開始,PHP 5.0就更普遍,但有一些問題)。針對這些事情獲取棄用警告是您看到可能受益於某些新語言功能的PHP 4代碼的一個標誌。禁用棄用警告會隱藏這些好處,因爲這是與測試相關的,所以也會隱藏測試系統的重要信息。 – hakre 2012-08-01 08:16:58

相關問題