C++ 如何在测试完成后强制boost::unit_测试暂停?
从VisualStudio运行控制台程序时,控制台会显示,程序会运行,然后控制台会消失,您没有机会看到它 通常,我会在C++ 如何在测试完成后强制boost::unit_测试暂停?,c++,boost,boost-unit-test-framework,C++,Boost,Boost Unit Test Framework,从VisualStudio运行控制台程序时,控制台会显示,程序会运行,然后控制台会消失,您没有机会看到它 通常,我会在main的返回语句之前添加这些行: std::cout << "Press enter to exit " << std::endl; std::string sGot; getline(std::cin, sGot); std::cout您可以添加一个专用于此目的的测试,并且总是最后运行 编辑(由jpo38填写): BOOST\u AUTO\u TES
main
的返回语句之前添加这些行:
std::cout << "Press enter to exit " << std::endl;
std::string sGot;
getline(std::cin, sGot);
std::cout您可以添加一个专用于此目的的测试,并且总是最后运行
编辑(由jpo38填写):
BOOST\u AUTO\u TEST\u套件(暂停时停止)
增压自动测试案例(不暂停)
{
std::cout您可以添加一个专用于此目的的测试,并且总是最后运行
编辑(由jpo38填写):
BOOST\u AUTO\u TEST\u套件(暂停时停止)
增压自动测试案例(不暂停)
{
std::cout这是Visual Studio的首选项:
- 进入“菜单>工具>选项”,您将看到如下图所示的选项对话框
- 导航到“调试”
- 取消选中“调试停止时自动关闭控制台”
这是Visual Studio的首选项:
- 进入“菜单>工具>选项”,您将看到如下图所示的选项对话框
- 导航到“调试”
- 取消选中“调试停止时自动关闭控制台”
不相关,但您可以简单地使用std::cin.get();
而不是getline
使用std::this_thread::sleep_for()怎么样
?@karastojko:谁在乎这个命令是什么?关键是在哪里添加它?因为我们不能修改主程序,这必须在最后一次测试执行后完成…使用Ctrl+F5运行,而不仅仅是F5(如果不需要调试器)。或者,按照您的要求,通过命令行启动程序。您可以添加一个专用于调试的测试这是目的,并且总是最后运行。不相关,但是您可以简单地使用std::cin.get();
而不是getline
std::this_thread::sleep_for()
?@karastojko:谁在乎这个命令是什么?关键是在哪里添加它?因为我们不能修改主程序,这必须在最后一次测试执行后完成…使用Ctrl+F5运行,而不仅仅是F5(如果不需要调试器)。或者,按照您的要求,通过命令行启动程序。您可以添加一个专用于调试的测试这是VS2017和VS2019中新增的。这是VS2017和VS2019中新增的。
BOOST_AUTO_TEST_SUITE( PauseWhenDone )
BOOST_AUTO_TEST_CASE( do_pause )
{
std::cout << "Press enter to exit " << std::endl;
std::string sGot;
getline(std::cin, sGot);
}
BOOST_AUTO_TEST_SUITE_END()