2016-09-12 10 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フレームワークを使用してコンパイルされたとき、私は似た何かを行うことができますどのように? mainboostライブラリに直接含まれているため、変更することはできません(そのためには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() 
関連する問題