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

4
我已经使用下面的代码成功安装并运行了 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();
}

这个对你有用吗:cmake CMakeLists.txt && make && ./runTests &> test_output.txt(参见此处)? - crayzeewulf
@crayzeewulf 是的!太好了,谢谢。把它放在答案里,赚一些积分。这对任何程序都有效吗,还是只针对gtest相关的? - RobotEyes
机器人眼睛,完成。此外,在shell中运行的任何命令都可以使用该类型的重定向 - crayzeewulf
独立于bash和cmake:gtest_output选项。 Windows,VS:选项--gtest_output=xml--gtest_output=xml:./与当前文件夹中的结果一起工作(我认为是解决方案所在的文件夹)。 - Liviu
2个回答

3
您可以将您的runTests命令的输出重定向到一个文件中:
cmake CMakeLists.txt && make && ./runTests > test_output.txt

此外,请参考这篇文章,它解释了为什么您不需要在评论中使用我所使用的&。如Awaken的回答所说,&stdoutstderr重定向到同一个文件。但由于googletest输出始终会发送到stdout,因此您可以省略&

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

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接