如何抑制运行时错误引起的断言()使用谷歌测试
How to suppress runtime errors caused by assert() using google test?
我在一个c++项目中使用谷歌测试。有些函数使用assert()来检查无效的输入参数。我已经阅读了死亡测试(什么是谷歌测试,死亡测试),并开始在我的测试用例中使用它们。
但是,我想知道是否有一种方法可以抑制由失败的断言引起的运行时错误。此时,每个失败的断言都会创建一个弹出窗口,我必须在每次运行测试时关闭该窗口。随着项目的增长,这种行为越来越多地以一种不可接受的方式干扰工作流程,我倾向于不再测试assert()-断言。我知道在一般情况下有禁用断言的可能性,但是在测试框架内抑制os生成的警告似乎更方便。
好的,我自己找到了解决方案:您必须选择测试样式的threadsafe
。只需在测试代码中添加以下行:
::testing::FLAGS_gtest_death_test_style = "threadsafe";
您可以对test-binary中的所有测试执行此操作,也可以仅对受影响的测试执行此操作。后者更快。我从更新后的FAQ: Googletest AdvancedGuide
相关文章:
- 谷歌测试中的期望值存储在哪里
- 更正 CMakeList.txt 用于谷歌测试的文件?
- 如何让谷歌测试正常运行。测试总是失败。(它不会编译)
- 谷歌测试方法与流
- 谷歌测试:模板模板的笛卡尔乘积的类型列表与模板
- C++ 谷歌测试除以零
- 多定义C ++ / C谷歌测试
- 使用谷歌测试进行测试时出现分段错误
- 如何使用谷歌测试检查两个枚举类元素的相等性?
- 谷歌测试集ArgReferee with vector<unique_ptr>
- 谷歌测试编译错误 Os X:函数式转换从"int"到"internal::FloatingEq2Matcher"的模糊转换<float>
- 谷歌测试发现在macOSX上添加并运行了我的所有测试两次
- 在谷歌测试中创建模拟类的向量
- 为什么在谷歌测试中调用"mkdtemp()"时失败
- 谷歌测试可执行文件中的单元测试未被vstest选中
- 谷歌测试:Android与Linux EXPECT_DEATH测试
- 谷歌测试比较指针数组的内容
- ptrdiff_t typedef 碰撞 - 谷歌测试和英特尔蟒蛇
- 我无法编译谷歌测试,告诉链接器输入未使用(macOS)
- EXPECT_CALL在谷歌测试中没有模拟