2011-02-08 3 views
1

CPP 유닛에서는 빌드 빌드 설정의 일부로 유닛 테스트를 빌드의 일부로 실행합니다. 우리는이 일환으로 여러 가지 테스트를 진행할 것입니다. 어떤 테스트 케이스가 실패해도 post 빌드가 멈추지 않아야한다면 모든 테스트 케이스를 실행하고 얼마나 많은 테스트 케이스가 성공하고 실패했는지 요약을보고해야한다. 어떻게 우리가 이것을 얻을 수 있을까요?C++ 용 CPP 유닛 설정

감사합니다.

+2

설정에 대한 자세한 내용을 입력하십시오. 귀하의 질문은 너무 일반적인 답변을 유용합니다. 원하는 단위 테스트 라이브러리 (boost.test, unittest ++, cppunit, ...)를 이미 결정 했습니까? 어떤 도구를 사용합니까? 어떤 환경에서 (개발자 또는 일부 지속적인 통합을 통해) 수동으로 실행합니까? 모든 테스트 또는 여러 테스트를 단일 실행 파일로 사용 하시겠습니까? –

답변

0

정확한 답변을 얻기에는 너무 애매합니다. 일반적으로 단위 테스트 엔진은 실패했다고 알리는 코드를 반환하거나 (Linux의 쉘에있는 0이 아닌 반환 코드와 같은) 코드를 반환하거나 결과가있는 출력 파일을 생성합니다. 호출 시스템이이를 처리합니다. 그것을 작성했다면 (일부 집에서 만든 스크립트) 오류가 발생하더라도 테스트 실행을 계속할 수있는 옵션을 제공해야합니다. 연속 통합 서버와 같은 일부 도구를 사용하는 경우에는 문서를 검토하고 테스트가 실패 할 때 계속할 수있는 옵션을 찾아야합니다.

해결 방법은 단위 테스트가 실패 할 경우에도 "OK"결과를 반환하는 스크립트를 작성하는 것입니다,하지만 거기에 당신이 어떤 자동 검증을 잃게 ...

더 많은 단서를 원한다면 더 구체적으로.

my2c

0

난 그냥 이런 식으로 테스트를 작성합니다. CPPUNIT_ASSERT 매크로를 사용하는 대신에 어떤 에러 로깅 방법을 사용하여 일반 C++로 작성할 수 있습니다.

물론 매크로를 사용할 수도 있습니다. 뭔가 같이 :

LOGASSERT(some_expression)

는 some_expression을 실행하고, 실패하면 FILELINE와 함께 발현을 기록 정의 할 수 있습니다, 당신은 또한 물론 예외뿐만 아니라 사람을 로그온 할 수 당신의 테스트에 쓰는 것만으로도 던지지 않습니다. (매크로를 사용하여 표현식을 로그 한 경우 FILELINE).

매크로를 작성하는 경우 추가 매개 변수가있는 인라인 함수를 호출하도록 매크로의 내용을 제한하는 것이 좋습니다.

+0

나는 이것을 반대합니다. 제공된 매크로를 사용하십시오. 장치가 실패하면 해당 테스트가 종료되고 호출 환경으로 돌아갑니다. 그러나 호출 환경에서는 실패와 관련된 메시지를 인쇄 한 다음 계속해서 다음 테스트를 호출 할 수 있습니다. –

1

그의 질문은 충분히 구체적입니다. 테스트 주자가 필요합니다. 각 테스트를 자체 동작 및 클래스로 캡슐화합니다. 테스트 프로젝트는 테스트 된 코드와 별도로 포함되어 있습니다. 이후에는 XMLOutputter를 구성하십시오. Linux 웹 사이트에서이 작업을 수행하는 방법에 대한 훌륭한 예를 찾을 수 있습니다. http://www.yolinux.com/TUTORIALS/CppUnit.html

우리는이 방법을 사용하여 주요 프로젝트에 대한 테스트 프로젝트를 컴파일하고 모든 것이 괜찮은지 확인합니다. 이제 모든 것이 테스트 코드를 유지 관리하는 작업이되었습니다.