【发布时间】:2017-02-05 05:17:17
【问题描述】:
我正在尝试为我的项目设置测试,我已禁用异常并已将我的断言定义为调用 std::abort。 gtest 和 Catch 都只能在一个调用 std::abort 的测试中失败,因为它会杀死整个测试套件。
我的项目编译成测试项目/可执行文件引用的 DLL。除了:
- 启用异常并抛出我的断言
- 创建自定义编译目标并执行与 1 类似的操作。
- 重构代码不依赖断言失败
我还有其他选择吗?出于设计/速度方面的考虑,我不希望启用异常。
【问题讨论】:
-
googletest 支持这一点。查找死亡测试。
-
应用程序中止的死亡测试测试。我构建代码的方式会在出现不可恢复的错误时中止,这几乎可以随时发生。
-
这可能不是一个很好的设计。
标签: c++ unit-testing testing visual-c++ automated-tests