2013-11-01 75 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 && make && ./runTests&> test_output.txt'(参见[this](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,完成。此外,该类型的[重定向](http://en.wikipedia.org/wiki/Redirection_(计算))将适用于您在shell中运行的任何命令。 – crayzeewulf

回答

1

您可以将runTests命令的输出重定向到一个文件:

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

而且,看到this这可以解释为什么你不需要我在我的评论中使用的&。正如Awaken的回答所说,&stdoutstderr重定向到同一个文件。但由于googletest输出始终为stdout,因此您可以省略&

+2

但是被测试的代码本身可能会记录到stderr。如果仅使用>,那些打印输出将不在输出文件中。 – VladLosev