2016-09-12 109 views
0

從Visual Studio運行控制檯程序時,控制檯顯示,程序運行,然後控制檯消失,但沒有機會看到它。如何在測試完成後強制boost :: unit_test暫停?

一般情況下,我加入之前main的return語句的那些行:

std::cout << "Press enter to exit " << std::endl; 
std::string sGot; 
getline(std::cin, sGot); 

我該怎麼辦類似的,當程序與boost::unit_test框架編譯?因爲main直接是boost庫的一部分,所以我不能修改它(我想避免爲此重新編譯boost)。

+0

無關,但你完全可以用'的std :: cin.get();',而不是'getline' – Tas

+0

怎麼樣'的std :: this_thread :: sleep_for()'? – karastojko

+0

@karastojko:誰在乎命令是什麼?重點在哪裏添加它?由於我們無法修改主程序,所以必須先執行最後的測試... – jpo38

回答

2

您可以添加專門用於此目的的測試,並始終運行最後一次。

編輯(由jpo38完成):

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() 
相關問題