与 2013 年相比:断点进入 CPPunittest 测试引发异常

vs 2013 : breakpoint into cppunittest test throws exception

本文关键字:CPPunittest 测试 异常 断点 2013      更新时间:2023-10-16

我正在与 2013 环境中测试我的 c++11 静态库。我遵循了这个很好的教程,测试+代码覆盖率工作正常。

现在我需要一步一步:我添加了断点并执行了"调试选定的测试"命令,我收到以下消息:vstest.executionengine.exe触发了一个断点,调用堆栈将我带到CppUnitTest.h:465(static_cast<ThisClass *>(this)->*method2)();,例如在我想闯入的方法的根调用处。无法查看此调用中的代码。

我的问题:如何在调试 Mss cpp 单元测试期间闯入我的代码?

我发现了问题。一些断点在测试 dll 使用的静态库中激活。静态库中的断点似乎为测试框架生成了错误。

要重现:

  • 使用简单的函数创建 C++ 静态库项目,int foo(){ return 0;}
  • 创建测试 DLL 项目
  • 添加调用foo的测试函数
  • foo中设置断点
  • 执行"运行选定的测试":它将起作用
  • 执行"调试选定的测试":它将在调用测试方法测试生成的类之前阻止。

我仍然有兴趣解释这种非直觉行为。