如何使用google测试抑制assert()导致的运行时错误?

jot*_*ken 5 c++ assert runtime-error googletest

我在C++项目中使用谷歌测试.某些函数使用assert()来检查无效的输入参数.我已经读过关于死亡测试(什么是Google测试,死亡测试)并在我的测试用例中开始使用它们.

但是,我想知道是否有一种方法可以抑制由断言失败引起的运行时错误.此时,每次失败的断言都会创建一个弹出窗口,每次运行测试时都必须关闭该窗口.随着我的项目的增长,这种行为越来越以不可接受的方式扰乱工作流程,我倾向于不再测试断言() - 断言.我知道通常可以禁用断言,但是从测试框架内部抑制操作系统生成的警告似乎更方便.

jot*_*ken 2

好吧,我自己找到了解决方案:你必须选择 test-style threadsafe。只需将以下行添加到您的测试代码中:

::testing::FLAGS_gtest_death_test_style = "threadsafe";
Run Code Online (Sandbox Code Playgroud)

您可以对测试二进制文件中的所有测试执行此操作,也可以仅对受影响的测试执行此操作。后者更快。我从更新的常见问题解答中得到了这个:Googletest AdvancedGuide