2012-08-10 2 views
4

내가 phpunit을의 출력을 캡처하기 위해 노력하고있어 :phpunit을은 생략하고 불완전 시험에 대한 충분한 정보를 제공하지

$pu_result = new \PHPUnit_Framework_TestResult(); 
$pu_result->addListener(new \PHPUnit_Util_Log_JSON());  

$pu_suite = new \PHPUnit_Framework_TestSuite(); 

// here I add tests 
// $pu_suite->addTestSuite(...); 

ob_start(); 
$pu_suite->run($pu_result);  
$output = ob_get_clean(); 

이 BTW 나에게 $ 출력으로 JSON 인코딩 된 문자열 (나쁜 JSON을 제공합니다,하지만 내가 해결할 수 그것).

문제는 "메시지"불완전에 대한 특성 및 "건너 뛴 테스트"또는 "불완전한 테스트"입니다 테스트를 생략하고 나는 $this->markTestIncomplete() 또는 $this->markTestSkipped() 전화 :(

수에서 제공하는 메시지를 포함하지 않는다는 것입니다 나도 것을 얻을?

+0

재생할 수있는 최소한의 재현 가능한 예를 만들 수 있습니까? (당신이 얻는 출력과 당신이 기대하는 결과를 보여주는 것도 좋을 것입니다.) –

답변

3

당신은 최신 3.6 버전으로 업그레이드하여 JSON 로그에 다음을 얻을 수 있습니다., 나는 그들이 모두 로그에 예외 메시지를 추가하는 것을 볼 수 addIncompleteTest에 대한 latest PHPUnit_Util_Log_JSON sourceaddSkippedTest에서 찾고있다. 난 못해 그러나이 변경 내용이 일 때 을 찾습니다. 이러한 변경 사항이 3.6에 없으면 .x를 사용하면 자신 만의 하위 클래스를 만들어이 메서드를 매우 쉽게 재정의 할 수 있습니다.

+0

tx. 비록 업데이트 된 클래스가 표준 릴리스에 포함되어있는 것으로 보이지 않습니다. – ellabeauty

+0

맞습니다. 이러한 변경 사항은 3.6 분기에만 표시되며 '마스터'에만 표시됩니다. –

5

시도는 phpunit.xml 또는 어떤 다른 구성 중 하나에 printerClass 설정을 정의하는 -v 옵션 (--verbose)

+0

이것은 나를 위해 일했습니다. 고마워요. – trampgeek

0

Wa tch O ut에와 phpunit을 실행합니다. 기본 프린터 클래스는 건너 뛴 테스트를 포함하지만 다른 프린터 클래스는 포함하지 않을 수 있습니다.

"PHPUnit_TextUI_ResultPrinter" 예를 들어 건너 뛴 테스트는 인쇄되지 않습니다.

관련 문제