我在 C++ 项目中使用谷歌测试。一些函数使用 assert() 来检查无效的输入参数。我已经阅读了关于死亡测试(什么是谷歌测试,死亡测试)并开始在我的测试用例中使用它们。
但是,我想知道是否有办法抑制由失败的断言引起的运行时错误。此时,每个失败的断言都会创建一个弹出窗口,每次运行测试时我都必须关闭。随着我的项目的发展,这种行为越来越以不可接受的方式扰乱工作流程,我倾向于不再测试 assert() 断言。我知道通常可以禁用断言,但是从测试框架内部抑制操作系统生成的警告似乎更方便。
我在 C++ 项目中使用谷歌测试。一些函数使用 assert() 来检查无效的输入参数。我已经阅读了关于死亡测试(什么是谷歌测试,死亡测试)并开始在我的测试用例中使用它们。
但是,我想知道是否有办法抑制由失败的断言引起的运行时错误。此时,每个失败的断言都会创建一个弹出窗口,每次运行测试时我都必须关闭。随着我的项目的发展,这种行为越来越以不可接受的方式扰乱工作流程,我倾向于不再测试 assert() 断言。我知道通常可以禁用断言,但是从测试框架内部抑制操作系统生成的警告似乎更方便。
好的,我自己找到了解决方案:您必须选择 test-style threadsafe
。只需将以下行添加到您的测试代码中:
::testing::FLAGS_gtest_death_test_style = "threadsafe";
您可以对测试二进制文件中的所有测试执行此操作,也可以仅对受影响的测试执行此操作。后者更快。我从更新的常见问题解答中得到了这个:Googletest AdvancedGuide