2009-07-23 2 views
3

현재 부스트 테스트 라이브러리를 사용하는 방법을 배우고 있으며 테스트 스위트가 올바르게 작동하지 않는 것 같습니다. 다음 코드에서 'test_case_1'은 올바르게 실패하지만 'test_suite_1'대신 Master Test Suite에있는 것으로보고됩니다.잘못된 테스트 세트에서 부스트 유닛 테스트 오류가 감지되었습니다.

누구나 내가 뭘 잘못하고 있는지 알아?

#define BOOST_AUTO_TEST_MAIN 
#include <boost/test/auto_unit_test.hpp> 

BOOST_AUTO_TEST_SUITE(test_suite_1); 

BOOST_AUTO_TEST_CASE(test_case_1) { 
    BOOST_REQUIRE_EQUAL(1, 2); 
} 

BOOST_AUTO_TEST_SUITE_END(); 

편집 :

Ovanes

- 마스터 테스트 스위트를 ''대답은 더 스위트 계층 구조를 이해하는 저를 이끌어이 경우 test_suite_1에서 기본적으로 명명 된 루트 제품군의 하위 제품군은 '. 기본 로깅은 내가 다룰 수있는 것으로 예상했던 것과 다른 루트 스위트 만 보여줍니다.

BOOST_TEST_MODULE을 정의하여 루트 스위트 이름을 설정할 수 있습니다. 예상되는 오류 메시지는 다음과 같습니다.

#define BOOST_TEST_MODULE test_suite_1 
#define BOOST_AUTO_TEST_MAIN 

#include <boost/test/auto_unit_test.hpp> 

BOOST_AUTO_TEST_CASE(test_case_1) { 
    BOOST_REQUIRE_EQUAL(1, 2); 
} 
+0

내가 이걸 발견 다행이야,하지만 난 완전히이 동작에 덩어리-때려서 해요 . 'BOOST_TEST_MODULE' 만 한 번 사용할 수 있기 때문에 단위 테스트 실행 파일 당 기본적으로 하나의 패키지가 있다는 것을 의미하지 않습니까? 그리고 모든 테스트 실패는 하위 제품군 이름없이이 제품군의 구성원으로보고됩니다. 확실하게 나는 여기에서 뭔가를 놓치고있다. 편집 : 서식 지정 –

답변

2

보고서를 생성하도록 로거를 구성하는 방법에 따라 다릅니다. 예를 들어 = 모두 다음과 같은 결과가 발생합니다 --log_level 귀하의 예제에 통과 :

여기
Running 1 test case... 
Entering test suite "Master Test Suite" 
Entering test suite "test_suite_1" 
Entering test case "test_case_1" 
d:/projects/cpp/test/main.cpp(9): fatal error in "test_case_1": critical check 1 == 2 failed [1 != 2] 
Leaving test case "test_case_1" 
Leaving test suite "test_suite_1" 
Leaving test suite "Master Test Suite" 

*** 1 failure detected in test suite "Master Test Suite" 

Boost Test Framework의 명령 행 설정 옵션에 대한 링크입니다. 당신이 BOOST_TEST_MODULE을 정의하면

감사합니다,
Ovanes 또한

0

는, 당신은 BOOST_AUTO_TEST_MAIN를 정의 할 필요가 없습니다