我正在与 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
中设置断点 - 执行"运行选定的测试":它将起作用
- 执行"调试选定的测试":它将在调用测试方法测试生成的类之前阻止。
我仍然有兴趣解释这种非直觉行为。