1

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

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

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

4

1 回答 1

0

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

重现:

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

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

于 2015-03-17T22:21:40.977 回答