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

는 관련없는,하지만 당신은 단순히 '사용 표준 : cin.get() 할 수 있습니다 대신'의는'어떻게 표준 : this_thread ::'에 대해 – Tas

+0

을 getline' 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()