我正在 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/