2011-07-07 4 views

답변

5

두 가지 방법이 있습니다.

http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Defining_Event_Listeners

또 다른 방법은 googletest 이벤트 리스너가 수신 입력을 필터링하는 것입니다

첫 번째는 자신의 이벤트 리스너를 작성하는 것입니다. 이를 위해

은 현재 이벤트 리스너를 제거하고 그것을 교환 approache 자신의

testing::TestEventListeners& listeners = testing::UnitTest::GetInstance()->listeners(); 
testing::TestEventListener* listener = listeners.Release(listeners.default_result_printer()); 
listeners.Append(new FailurePrinter(listener)); 

FailurePrinter 자신의 이벤트 리스너 클래스입니다

.

이 클래스는 이제 모든 메소드를 구현해야이

class FailurePrinter : public ::testing::TestEventListener { 

public: 
FailurePrinter(TestEventListener* listener) : TestEventListener() {_listener = listener;} 

virtual void OnTestProgramStart(const UnitTest& unit_test); 
virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration); 
virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test); 
virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test); 
virtual void OnTestCaseStart(const TestCase& test_case); 
virtual void OnTestStart(const TestInfo& test_info); 
virtual void OnTestPartResult(const TestPartResult& result); 
virtual void OnTestEnd(const TestInfo& test_info); 
virtual void OnTestCaseEnd(const TestCase& test_case); 
virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test); 
virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test); 
virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration); 
virtual void OnTestProgramEnd(const UnitTest& unit_test); 

protected: 
testing::TestEventListener* _listener; 
}; 

처럼 보일 것입니다.

googles 이벤트 리스너가 어떤 것을 인쇄하는 것을 좋아한다면, 호출을 _listener에 위임하십시오.

또는 결과를 수정할 수 있습니다. 예 :

void FailurePrinter::OnTestPartResult(const TestPartResult& test_part_result) 
{ 
    if (test_part_result.failed()) 
    { 
     _listener->OnTestPartResult(test_part_result); 
     printf("\n"); 
    } 
} 

은 Testfailures 만 출력합니다.

6

나는 많은 사람들이 확신 하듯이 동일한 문제에 부딪 쳤습니다.

https://gist.github.com/elliotchance/8215283

거의 붙여 넣기하고 플레이해야 : 그래서 나는이를 만들었습니다.

+0

허용되는 답변이어야합니다. – Purefan

0

Google 테스트 용 청취자/예쁜 프린터 인 Google Test Pretty Printer을 작성하여 Google 테스트 프로그램에 더 깨끗하고 매력적인 콘솔 출력을 제공했습니다. 그것은 당신이 원하는 것을 할 수있는 --failures-only 옵션을 포함합니다.

관련 문제