gpt4 book ai didi

c++ - 从谷歌测试中清除标准输出错误

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:57 26 4
gpt4 key购买 nike

有什么方法(除了 stdout 重定向之外)可以避免在使用 google 测试时将我的代码的错误和警告消息发送到 stdout?

我只想从 gtest 中获取拆卸和输出,而不是让我的 stdout 日志与我的程序手动生成的我需要测试的警告和异常一起被丢弃。

最佳答案

假设您所有的测试都使用固定装置,并且您所有的输出都是 <iostream> -based,您可以执行以下操作:

using namespace std;

class SomeTest : public testing::Test {
protected:
virtual void setUp() {
storedStreambuf_ = cout.rdbuf();
cout.rdbuf(nullptr);
}

virtual void tearDown() {
cout.rdbuf(storedStreambuf_);
}
private:
streambuf* storedStreambuf_;
};

这将抑制通过 cout 的所有输出在测试运行期间,可以用同样的方式为 cerr 完成和 clog .

为了保持这个 DRY,您可以编写一个继承自 testing::Test 的通用基类,并以此为基础制作所有灯具。

关于c++ - 从谷歌测试中清除标准输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com