2014-02-19 4 views
34

매우 두꺼운 질문이지만 Codeception의 콘솔에 자신의 디버그 메시지를 인쇄 할 수있는 방법이 있습니까? 나는 순전히 테스트 자체를 디버깅, 주장과는 아무 상관이없는 메시지 의미 (같은 예를 들어, 당신 것 var_dump() 정규 PHP 웹 사이트에서 변수)Codeception의 콘솔에 디버그 출력 인쇄

이미 var_dump(), echoprint을 시도

하지만 아무 소용. WebDebugmakeAResponseDump()을 사용하면 아무런 결과가 나오지 않고 단지 xdebug과 같은 디버거를 실행하지 않고도 내 변수의 내용을 볼 수 있기를 원합니다.

class WebHelper extends \Codeception\Module 
{ 
    public function seeMyVar($var){ 
     $this->debug($var); 
    } 
} 

와 같은 클래스 호출 : 나는 난 디버그 출력을 얻을 다음

$foo = array('one','two'); 
$I->seeMyVar($foo); 

답변

11

나는 도우미 클래스를 사용하여 문제를 해결하는 방법을 찾을 것 같다 찾고있다.

I see my var "lambda function" 
    Array 
    (
     [0] => one 
     [1] => two 
) 

나는 임시 해결책으로 이것을 받아 들일 것이다. 그러나 나는 나의 주장을 깨끗하게하고 싶다. 테스트 함수로 업그레이드 된 var_dumps로 복잡하지 않으므로 개념적으로 올바른 솔루션을 가진 사람이라면 제출하십시오.

+0

을 보여줍니다 것이다. 솔루션을 공유해 주셔서 감사합니다. –

+0

왜'var_dump','print_r', 또는'print'를 호출하지 않을까요? 그것은'tryToTest' 내에서 작동합니다 – pymarco

+0

위 테스트 중 어느 것도 작동하지 않았기 때문에 원래 포스트가 작동 한 이후로 새 버전이 나왔을까요? –

2

기본적으로 Codeception에 오류가 있지만 자세한 내용은 표시되지 않습니다. 그러나 this blog post에 따르면 --debug를 추가하면 오류가 자세히 표시됩니다.

40
\Codeception\Util\Debug::debug($this->em);die(); 

--debug 플래그 Codeception을 실행

codecept run --debug

.

+0

디버그 방법은 중요하지 않습니다. 당신은'var_dump()'를 사용할 수있다. ** phpunit ** 테스트를 실행해도 ** - debug **는 필요하지 않습니다. – coviex

5

또는 당신은 같은 명령을 제어하는 ​​상세를 사용할 수 있습니다 각 v 출력의 상세 (기본적으로 매우 침묵)을 증가

codecept run -vvv 

.

36

당신은 codecept_debug 기능을 사용하여 테스트 내부 정보를 인쇄 할 수 있습니다

을 말한다 Debugging 참조하십시오.

그리고 내 * CEPT 클래스를 사용하고 있습니다 : 당신이 -v가 표시되지 않습니다 (--debug를 실행할 때

codecept_debug($myVar); 

디버그 출력 만 볼 수 있지만, -vv 및 -vvv)을 수행

codecept run --debug 

을 그리고 출력 보였다 같은 :

Validate MyEntity table insert (MyCept) 
Scenario: 
* I persist entity "AppBundle\Entity\MyEntity" 

    AppBundle\Entity\MyEntity Object 
    (
     [Id:AppBundle\Entity\MyEntity:private] => 1 
     [Description:AppBundle\Entity\MyEntity:private] => Description 
) 

PASSED 
0

짧은 버전 codecept run tests/acceptance/SomeCest.php -d
-d는 당신에게 내가이 작업을 수행 할 수있는 확실한 방법을 확인할 수 없습니다에 대한 약간 두꺼운라고 생각하기 시작했다 단계 및 디버그