2011-02-03 5 views
3

부스트 테스트 라이브러리로 단위 테스트를 구현하려고합니다. 나는 부스트 사이트에서 매뉴얼을 읽는 것으로 시작했다. 이것 후에 나는 이미 존재하는 프로젝트 중 하나에서 간단한 테스트 프로그램을 만든다. 내가 직면하는 유일한 문제는 내가 테스트 결과를 볼 수 없다는 것입니다. 나는 내가 틀린 약간의 것을 만들고있다라고 확신한다 :). 그러나 나는 그것을 이해할 수 없다. 내 프로젝트의 세부 사항은 다음과부스트 테스트에서 출력 없음

나는이 시각적 studio8을 사용하고 있습니다 : 내가 다른 프로젝트와 함께 MyProject.sln

라는 솔루션을 전합니다 (MyDLL.vcproj라는 이름의 프로젝트가 이 프로젝트의 유형 DLL) 나는 새로운 CPP 파일 이름 을 MyTest.cpp를 추가 MYDLL의 PROJ에서 다른 파일과 함께

이며, 파일에는 다음 코드가 포함

,
#define BOOST_TEST_DYN_LINK 
#define BOOST_TEST_MAIN 
//#define BOOST_TEST_MODULE MyTestTestModue //no need for this maro if above macro is used 
#include <boost/test/unit_test.hpp> 

BOOST_AUTO_TEST_CASE(SampleTC) 
{ 
    BOOST_CHECK(true); 
};  

은 내가 출력을 얻을 수 없습니다 여전히 컴파일 매뉴얼에 주어진 세부 사항 만 읽어

C++ -> General -> Additional Include Dependencies = D:\MyProject\Boost\boost\test 
Linker -> General -> Additional Libray Directories = D:\MyProject\Boost\lib\win32\Debug 
Linker -> System -> SubSystem = (/SUBSYSTEM:CONSOLE) 

MYDLL 프로젝트 속성 시트에서 다음과 같이 변경합니다. 이상적으로 나는 독립 실행 형 라이브러리 (UTF의 동적 라이브러리 varian)로 부스트 테스트를 사용하고자합니다.

답변

2

나는 내가 어떤 일을 잘못된 :

는 사실,이 문제가 바로 뭔가를하고있다 생각을하고 있음을 확신합니다.

확인 된 값이 true이기 때문에 테스트가 통과하며, 기본적으로 Boost.Test는 실패한 테스트에 대한 정보 만 출력합니다. 로그 수준은 두 가지 방법 중 하나를 사용하여 수행 할 수 있습니다. --log_level=all을 테스트 실행 파일의 옵션으로 전달하거나 환경 변수 BOOST_TEST_LOG_LEVELall으로 설정합니다.

모든 런타임 매개 변수에 대해서는 this page of the documentation을 참조하십시오.

편집 : 그것은 (중간에 밑줄) 실제로 --log_level의

1

우리의 단위 테스트는 도구 후 컴파일을 통해이라고; 따라서 우리는 EXE에 매개 변수를 쉽게 전달할 수 없습니다 (도구 구성을 변경하지 않고 모든 테스트에 영향을주지 않음). 귀하의 메시지가 어디에 추가 재미를 들어

boost::unit_test::unit_test_log_t::instance().set_threshold_level(boost::unit_test::log_messages); 

, 출력 파일 이름과 줄 번호 :

그래서 로그 수준 임계 값을 설정하는 또 다른 방법은 코드에서 부스트 단위 테스트 로거 싱글을 호출하는 것입니다 표시 :

#define MY_BOOST_TEST_MESSAGE(msg) BOOST_TEST_MESSAGE(`__FILE__` << `__LINE__` << " " << msg)