2010-07-03 2 views
3

PHP 용 simpletest : http://www.simpletest.org/을 처음 사용하고 PHP 5.2 *를 사용하고 있습니다. 데모를 기반으로 초기 테스트 스크립트를 만들려고 할 때 아래와 같은 오류가있는 페이지가 생깁니다 ... PHP 5와 호환되지 않는 simpletest와 관련이 있는지 확실하지 않습니다. * 또는 무엇이 문제인지, 어떤 통찰력을 높이 평가됩니다 .. 그것은 여전히 ​​오류 아래에 적절한 것 반환하는 것처럼 라이브러리를 사용할 수있는 것 같지만이 수정할 수 있도록 이것을 이해하고 싶습니다 .. 감사Simpletest PHP "unit testing for PHP"사용 중 오류 메시지 받기 "사용되지 않음 : 참조로 새로운 값 반환 지정됨"

다음은 simpletest 함수를 호출 할 때 사용하는 PHP 코드의 예입니다.

,210
<?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를 다운로드 했습니까? 이해하고 싶다면 unit_tester.php를 74 행과 89 행으로보십시오.

0

단위 테스트를 실행할 때 5.2가 아닌 5.3을 사용하고 있습니까? 5.3에서 실행되는 PEAR 패키지로 이러한 오류를 기억하는 것 같습니다.

0

또한 간단한 테스트 튜토리얼을 진행하면서이 문제가 발생했습니다.

이 메시지가 사라지게하기 위해 php.ini 파일의 display_errors = On 설정을 display_errors = Off으로 변경했습니다.

1

모든 오류를 끄기보다는 단지 switch off deprecation warnings입니다. 대안은 모든 간단한 파일에 대해 찾기 및 바꾸기를 수행하는 것입니다 : "& new"를 찾아 "new"로 대체하십시오. 참고로 new (&new)은 deprecated in PHP5.3 이었으므로 다음 SimpleTest 릴리스에서 수정 될 예정입니다.

+0

PHP 5.2의 릴리스 이후에는 (& PHP 5.0보다 일반적이지만 문제가있는) 이전에는'& new'를 사용할 필요가 없습니다. 이러한 것들에 대한 비추천 경고를 얻는 것은 새로운 언어 기능의 이점을 누릴 수있는 PHP 4 코드를 보여주는 신호입니다. 사용 중단 경고를 사용 중지하면 이러한 이점이 숨겨지며 테스트와 관련되어 있으므로 테스트중인 시스템에 대한 중요한 정보는 숨겨집니다. – hakre