상황
나중에 검토 할 수 있도록 DBU에 테스트 결과를 기록하는 PHPUnit 용 리스너를 구현 중입니다. 오류, 건너 뛴 또는 불완전한 테스트가 발생하면 기본 정보 인 phpunit
출력을 콘솔에 표시하는 것을 좋아합니다.리스너를 사용하여 PHPUnit의 출력 결과를 모방 할 수 있습니까?
예 :
1) sandbox_ExtensionSampleTest::testError
printf(): Too few arguments
E:\ecom_testing\tests_v2\TestSuites\sandbox\Base.php:28
E:\ecom_testing\tests_v2\TestSuites\sandbox\ExtensionSampleTest.php:37
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\Framework\TestCase.php:939
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\Framework\TestCase.php:801
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\Framework\TestResult.php:649
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\Framework\TestCase.php:748
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\Framework\TestSuite.php:772
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\Framework\TestSuite.php:745
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\TextUI\TestRunner.php:325
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\TextUI\Command.php:187
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\pear\PHPUnit\TextUI\Command.php:125
C:\Program Files (x86)\EasyPHP-5.3.8.1\php\pear\phpunit:44
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
참고 : I 출력의 모든 phpunit을 종속성을 나열하는 a bug 찾을 않았지만, 위의 예는 여전히 두 개의 관련 테스트 파일을 보여줍니다. 구현 된 수신기에있어서의 파라미터의
질문
하나 Exception $e
이다. $e
을 사용하여 첫 번째 줄뿐만 아니라 메시지를받을 수도 있지만 나머지 줄은 확보 할 수 없습니다.
PHP 매뉴얼에 예외를 읽은 후, 나는 ... 일 것이다 $e->getPrevious()
를 사용하여 생각 다음을 수행하려고 시도 : 작동하지 않았다
// Storing in a array to put into a DB later
// First line with the message
$trace[] = sprintf(
"%s\n\n%s:%s\n",
$e->getMessage(),
$e->getFile(),
$e->getLine()
);
// Go through the rest of the exceptions of files and lines
while ($e = $e->getPrevious()){
$trace[] = sprintf(
"%s:%s\n",
$e->getFile(),
$e->getLine()
);
}
. $e->getPrevious()
이 비어있는 것 같아요. 오브젝트를 버리면 확인했습니다. 저도 같은 결과를 얻을 것이다 $e->getTraceAsString()
같은 것을 생각하지만, 나는 (나는 많은 예외를 사용하지 않은)
엄청나게, 내가 원하는 것. 감사! – NkM