我有一组Boost单元测试,我想作为控制台应用程序运行.
当我正在进行项目并运行测试时,我希望能够调试测试,并且我希望在测试运行后让控制台保持打开状态.
我看到如果我在发布模式下运行,程序退出后控制台窗口会保持不变,但在调试模式下,情况并非如此.
我不想添加'system("pause");' 或任何其他黑客,比如在我的节目中读一个角色.我只是想在调试运行测试之后使Visual Studio暂停,就像我在发布模式下运行一样.如果在Visual Studio的一个输出窗口中捕获测试的输出,我也会喜欢它,但这似乎也应该比它应该更难.
我怎样才能做到这一点?
尝试使用Ctrl+ F5组合运行应用程序.
http://connect.microsoft.com/VisualStudio/feedback/details/540969/missing-press-any-key-to-continue-when-lauching-with-ctrl-f5
在旧版本中,即使您选择了"空项目",它也将默认为控制台子系统,但在2010年则不会,因此您必须手动设置它.为此,请在右侧或左侧的解决方案资源管理器中选择项目(可能已经选中,因此您不必担心这一点).然后从菜单栏下拉菜单中选择"项目",然后选择" project_name properties">"configuration properties">"linker">"system"并设置第一个属性,将"subsystem"属性下拉到"console"(/子系统:CONSOLE)".控制台窗口应该像往常一样在执行后保持打开状态.
Boost测试为Visual Studio提供了以下使用建议,使您能够在编译结束时自动运行单元测试并将输出捕获到构建窗口中.
这个技巧的好处是它使您能够将测试失败视为编译错误."...您可以使用常用的键盘快捷键/鼠标点击来跳过这些错误,用于编译错误分析..."
在最后一行代码上设置断点.
我刚从http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/1555ce45-8313-4669-a31e-b95b5d28c787/?prof=required复制:
以下为我工作:-)
////////////////////////////////////////////////// ///////////////////////////////////
这是控制台可能消失的另一个原因.而解决方案:
使用新的Visual Studio 2010,即使使用Ctrl+ F5aka"start without debugging",您也可能会看到此行为.这很可能是因为您创建了一个"空项目"而不是"Win32控制台应用程序".如果您将项目创建为"Win32控制台应用程序",则可以忽略它,因为它不适用.
在旧版本中,即使您选择"空项目",它也会默认使用控制台子系统,但在Visual Studio 2010中则不会,因此您必须手动设置它.为此,请在右侧或左侧的解决方案资源管理器中选择项目(可能已经选中,因此您不必担心这一点).
然后从菜单栏下拉菜单中选择"项目",然后选择" project_name属性"→"配置属性"→"链接器"→"系统"并设置第一个属性,将"子系统"属性下拉到"控制台"(/子系统:CONSOLE)".控制台窗口应该像往常一样在执行后保持打开状态.
////////////////////////////////////////////////// ///////////////////////////////////
如果是控制台应用程序,请使用Ctrl+ F5.