c++ 如何从通过ctest运行的单元测试生成核心转储文件?

watbbzwu  于 2023-07-01  发布在  其他
关注(0)|答案(1)|浏览(138)

我遇到了一个单元测试随机失败的问题,我不知道如何从这些测试中生成核心转储。
我使用cmake和ctest 3.21.1来运行这些测试,这些测试是使用gtest框架编写的。
我不相信这是我的系统环境的问题,我可以做一个小的c++程序,分割故障并生成一个核心转储。问题是从使用ctest运行的测试生成核心转储。

hjzp0vay

hjzp0vay1#

如果GTest是底层测试框架,那么有一个GTest命令行选项在Windows上很有帮助:MyTest.exe --gtest_catch_exceptions=0
注意:这并没有回答关于CTest的问题。我还没有找到一个类似的选项CTest。
来自GTest的帮助信息:

Assertion Behavior:
  --gtest_break_on_failure
      Turn assertion failures into debugger break-points.
  --gtest_throw_on_failure
      Turn assertion failures into C++ exceptions for use by an external
      test framework.
  --gtest_catch_exceptions=0
      Do not report exceptions as test failures. Instead, allow them
      to crash the program or throw a pop-up (on Windows).

相关问题