繁体   English   中英

如何使用谷歌测试抑制由 assert() 引起的运行时错误?

[英]How to suppress runtime errors caused by assert() using google test?

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

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

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

::testing::FLAGS_gtest_death_test_style = "threadsafe";

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM