c++ - 对比 2013 年 : breakpoint into cppunittest test throws exception

标签 c++ visual-studio-2013 microsoft-cpp-unit-test

我正在 vs 2013 环境中测试我的 c++11 静态库。 我关注了this不错的教程和测试 + 代码覆盖率工作正常。

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

我的问题:如何在调试 Ms cpp 单元测试期间打断我的代码?

最佳答案

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

重现:

  • 用一个简单的函数创建 C++ 静态库项目,int foo(){ return 0;}
  • 创建一个test-dll项目
  • 添加一个调用foo的测试函数>
  • foo中设置断点
  • 执行“运行选定的测试”:它将起作用
  • 执行“debug selected test”:它将在调用测试方法测试生成的类之前阻塞。

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

关于c++ - 对比 2013 年 : breakpoint into cppunittest test throws exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29085908/

相关文章:

c++ - 返回使用父对象数据的对象,然后使它们无效

c++ - 在未调用的函数中触发断点

azure - 无法注册 Azure - "We were unable to verify your account"

visual-studio-2013 - 导出 Visual Studio 解决方案

c++ - 如何正确调用 Assert::ExpectException?

c++ - 如何在 Skylake 架构上最大化 sqrt-heavy-loop 的指令级并行性?

c++ - std::vector push_back() 语义

c++ - 从模板参数的模板参数中提取值