2013-11-01 3 views
1

다음과 같이 코드를 사용하여 gtest를 실행했습니다. 테스트 파일을 콘솔에 표시하는 대신 텍스트 파일로 출력하고 싶습니다. 이 일을하는 방법이 있습니까?Google 테스트 출력을 텍스트 파일로 인쇄하는 방법은 무엇입니까?

콘솔에서 cmake을 사용하여 테스트를 실행합니다 : cmake CMakeLists.txt && make && ./runTests.

#include "cw-test.c" 
#include <stdio.h> 
#include <gtest/gtest.h> 

TEST(InputValidationTest, ValidateEntryLine) 
{ 
    ... 
} 

... 

int main(int argc, char **argv) { 
    testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 
+0

당신을 위해이 일이겠습니까'cmake CMakeLists.txt &&하게 && ./runTests &> test_output.txt' (http://code.google.com/p/googletest/wiki/ ([이]를 참조 FAQ # The_Google_Test_output_is_buried_in_a_whole_bunch_of_log_message))? – crayzeewulf

+0

@crayzeewulf 예! 완벽한 감사. 대답에 넣고 몇 가지 포인트를 얻으십시오. 그게 어떤 프로그램에서 작동할까요, 아니면 gtest와 관련이 있습니까? – RobotEyes

+0

RobotEyes, 끝났습니다. 또한, 그 유형의 [redirection] (http://en.wikipedia.org/wiki/Redirection_ (computing))은 쉘에서 실행하는 모든 명령에 대해 작동합니다. – crayzeewulf

답변

1

당신은 파일에 runTests 명령의 출력을 리디렉션 할 수 있습니다 :

cmake CMakeLists.txt && make && ./runTests > test_output.txt 

는 또한, 당신은 내 의견에 사용했던 & 필요하지 않은 이유를 설명하는 this를 참조하십시오. Awaken의 답변에 따르면 &stdoutstderr을 동일한 파일로 리디렉션합니다. 그러나 googletest 출력은 항상 stdout으로 이동하므로 &을 생략 할 수 있습니다.

+2

그러나 테스트중인 코드 자체가 stderr에 로깅 중일 수 있습니다. > 만 사용하는 경우 해당 출력물은 출력 파일에 없습니다. – VladLosev