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

时间:2011-07-13 09:59:50

标签: c++ assert runtime-error googletest

我在C ++项目中使用谷歌测试。某些函数使用assert()来检查无效的输入参数。我已经阅读了关于死亡测试(What are Google Test, Death Tests)并在我的测试用例中开始使用它们。

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

1 个答案:

答案 0 :(得分:2)

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

::testing::FLAGS_gtest_death_test_style = "threadsafe";

您可以对test-binary中的所有测试或仅针对受影响的测试执行此操作。后者更快。我从更新后的常见问题解答中得到了这个:Googletest AdvancedGuide