如何将Google Test输出打印到文本文件?

时间:2013-11-01 22:40:05

标签: c++ c bash cmake googletest

我使用代码进行gtest并运行,如下所示。我想将测试输出打印到文本文件,而不是在控制台中显示它。有没有办法做到这一点?

我使用控制台中的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();
}

2 个答案:

答案 0 :(得分:2)

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

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

此外,请参阅this,其中解释了为什么您不需要我在评论中使用的&。正如Awaken的回答所说,&stdoutstderr重定向到同一个文件。但由于googletest输出始终转到stdout,您可能会遗漏&

答案 1 :(得分:1)

crayzeewulf的评论适用于任何Unix程序。什么“&amp;&gt;”意思是将“stdout”和“stderr”中的输出重定向到您指定的其他位置。

可在此处找到更多信息。 http://www.mathinfo.u-picardie.fr/asch/f/MeCS/courseware/users/help/general/unix/redirection.html