我使用vs2010。
我需要运行由BOOST_AUTO_TEST_SUITE
组成的.exe
,以测试我的库在调试器下测试我的库,因为我得到了内存访问违规和内存泄漏。我没有主要功能,只需exe(井和.cpp文件)。
如何在调试器下运行此EXE?
update
如果您有一个具有多个项目的解决方案,并且需要运行1个包含单元测试的项目,例如,在调试器下,您需要:
- 右键单击
Solution explorer
中的此项目 - 单击
"Set as StartUp project"
- 放一些休息点
个人不知道我需要将项目设置为启动。
update
如果您有一个具有多个项目的解决方案,并且需要运行1个包含单元测试的项目,例如,在调试器下,您需要:
- 右键单击
Solution explorer
中的此项目 - 单击
"Set as StartUp project"
- 放一些休息点
个人不知道我需要将项目设置为启动。
您可以尝试调试您的测试套件很多,这是我建议您接近这一点的顺序:
-
设置BOOST_TEST_CATCH_SYSTEM_ERRORS环境变量以获取故障的更好的堆栈跟踪。
-
在(ALL)测试的开始和结束括号中设置断点,因为您的问题更有可能与测试有关,而不是框架和测试的设置。<<<<<<<<<<<<<<<</p>
-
打开
boost/test/impl/unit_test_main.ipp
在Visual Studio中包含文件,并在unit_test_main
方法中设置一个断点。您将踏上测试执行监视器,但这很少能提供更多的见识,而不仅仅是看测试本身。 -
这很少需要,但是您也可以在第一个主体上明确开始使用DEBUG WINDOWS WINDOWS BRAKETPORTS NEW,函数。在CRT启动之前,可以在窗口上调用四种主要方法: maincrtstartup , wmaincrtstartup , winmaincrtstartup ,>。
-
对于内存泄漏,请确保使用订单分配ID的
--detect-memory-leak
开关:
执行监视器提供了有限的检测内存泄漏的能力 在程序执行过程中,并在特定的 内存分配订单号(1-在程序中的内存第一次分配, 2-第二,依此类推)。
此外,检查如何按名称运行单个测试,如果您只能隔离测试的故障子集,通常会使调试变得更加容易。