所以我有一个 Google 测试,可以输出我需要的输出。但是,我不想包含 Google 测试输出本身来实现以下目的:
之前
Note: Google Test filter = MyTest.DISABLED_test1
...
<....OUTPUT FROM TEST....>
...
[ OK ] MyTest.DISABLED_test1
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran.
[ PASSED ] 1 test.
之后
...
<....OUTPUT FROM TEST....>
...
问题:
我正在使用命令行参数来运行 DISABLED 测试,我想知道是否有一种方法可以使用命令行标志来禁用框架本身生成的测试样板输出?我想保持其他测试不变,我不能更改框架的任何配置文件。
最佳答案
您应该添加命令行参数并在main() 中自行解析它。
当参数存在时,您可以调用 gtest 来删除默认事件监听器(打印结果的那个),您将拥有静默 gtest:
if(silent_run) {
auto& listeners = ::testing::UnitTest::GetInstance()->listeners();
delete listeners.Release(listeners.default_result_printer());
}
注意,上面的代码应该在RUN_ALL_TESTS()之前执行。
关于c++ - 使用命令行标志删除 Google Test boiler 框架输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497721/