2009-04-06 2 views
1

작성한 코드 주위에 단위 테스트 케이스를 작성한다는 점에서 CXX 테스트 프레임 워크는 얼마나 효과적입니까? 코드의 모든 버그는 단위 테스트 코드의 버그로 번역 될 수 있습니까? 2 개의 원판과 같은 것이 긍정적 인 것이 아닌가?CXX 용 CXX 테스트 프레임 워크

또한 CXX에 소요되는 시간과 노력은 적어도 코딩 노력보다 많지 않습니다.

내 프로젝트에서이 프레임 워크를 사용하지 않고 반대하는 강력한 포인트를 찾고 있기 때문에 이에 대한 의견이 필요합니다.

당신이 그것이 도움이된다고 생각한다면, 저를 계몽 해주십시오. :).

답변

2

CXX는 매우 활발하지 않으며, 단원 단위 테스트는 일반적으로 많은 노력이 필요합니다. 그러나 첫 번째 리팩터링이 시작되면 사용 된 노력에 매우 감사하게 생각합니다.

나는 Boost.Test & CPPUNIT를 사용했습니다. Boost.Test를 선호 하겠지만 그렇습니다. 프로젝트, 파일 등을 직접 작성해야합니다.

코드에서 골격을 생성하는 도구를 알고 있다면 나는 모두 귀입니다. :)

나는 Boost.Test와 CPPUNIT에 시도해보기를 제안한다. CXXUNIT에 반대하는 좋은 회진을 제공 할 것입니다.

+0

CxxTest는 활성화되어 있지 않아도됩니다. CppUnit과 달리 완벽하고 사용하기 쉽습니다. 어색함은 <*stream> 종속성 정책에서 비롯됩니다. –

+1

동의하지 않으면 유감이지만 관리 소프트웨어를 사용하는 것이 중요합니다. 컴파일러와 호환되지 않으면 어떻게됩니까? 버그가있을 때? 너 혼자하는거야? –

+4

다른 경우에 동의했을 수 있습니다. CxxTest는 고급 C++ 템플릿을 사용하지 않으며 RTTI를 요구하지 않으며 대부분의 구형 컴파일러 및 향후 컴파일러와 호환되도록 대부분의 표준 라이브러리 또는 예외가 필요하지 않습니다. 그리고 도구를 패치해야한다면, 매우 간단합니다. –

2

저는 cxxtest를 사용하고 있습니다. 퇴행 테스트는 우리의 소프트웨어 라이브러리를 검증하는 데만 사용되는 비싼 작업입니다. 이는 우리의 앱에 플랫폼 독립 레이어를 제공합니다. 이렇게하면 많은 변경 사항이 많은 앱과 프로젝트가 종속되어 있기 때문에 코드의 안정성에 영향을주지 않습니다.

우리는 cxxtest와 커버리지 분석을 결합하여 테스트 커버리지가 충분하고 CruiseControl을 사용하여 자동화합니다.

하지만 앱에서는이 작업을 수행하지 않습니다. 너무 많은 노력.

테스트 응용 프로그램을 빌드하는 것은 전체 라이브러리 자체를 작성하는 것만 큼 어렵습니다. 나는 그것이 당신의 가치가 있는지 여부를 해결해야 할 것에 동의합니다.

나는 조엘이 너무 이것에 대해 할 말이 있다고 생각 : http://www.joelonsoftware.com/items/2009/01/31.html

+0

"우리는 cxxtest와 커버리지 분석을 결합하여 테스트 커버리지가 충분하고 CruiseControl을 자동화하여 자동화합니다." 어떻게 한거야? 적용 범위 도구 란 무엇입니까? –

+0

우리는 VectorCAST를 사용합니다. 소스 코드를 컴파일러에 전달하기 전에 소스 코드를 계측 할 수 있습니다. – sep

4

구글 I는 다른 C++ 테스트 프레임 워크를 사용하지 않으며, 제한 경험이 결코 ... 내가 사용하고 환상적인 C++ 테스트 프레임 워크를 제공합니다 Junit과 함께, 나는이 문서를 매우으로 신속하게 가져올 수있었습니다. 프레임 워크에 대한 좌절감 때문에 테스트를 포기하기에는 너무 중요하기 때문에 테스트 프레임 워크를 사용하는 것이 중요합니다. 이 도움이

http://code.google.com/p/googletest/

희망 : 여기 링크입니다!

0

머리말 전용 테스트 프레임 워크를 선호합니다.이 중 두 가지는 TUTCatch입니다. 여러 프로젝트에서 전에 TUT을 사용했고 얼마 전에 Catch이 발견되었습니다.

1) TUT

- C++ 템플릿 유닛 테스트 워크

TUT은 C++을위한 작은 휴대용 유닛 테스트 프레임 워크이다.

  • 혀에 상관없이 당신이 사용하는 어떤 컴파일러 나 OS, 매우 휴대용 없습니다.
  • TUT는 헤더 파일로만 구성됩니다. 라이브러리가 필요하지 않으며 배포가 결코 쉬운 일은 아닙니다.
  • 커스텀 리포터 인터페이스를 사용하여 TUT을 전 세계 모든 IDE 또는 툴과 통합 할 수 있습니다.
  • 다중 프로세스 테스트 (데드락 테스트 및 시간 초과 테스트 중)가 지원됩니다.
  • TUT는 무료이며 BSD와 유사한 라이센스로 배포됩니다.
  • 테스트는 명명 된 테스트 그룹으로 구성됩니다.
  • 회귀 분석 (응용 프로그램의 모든 테스트), 단일 그룹 또는 단일 테스트 실행.
  • 순수 C++, 매크로 없음!

2) Catch - ++ C, 현대 - 기본, 헤더 만, 단위 테스트, TDD와 BDD

을위한 프레임 워크는

캐치은 무엇입니까?

Catch는 C++ Automated Test Cases for Headers를 나타내며 C++ 및 Objective-C ( 어쩌면 C) 용 다중 패러다임 자동화 테스트 프레임 워크입니다. 이 헤더 파일은 전적으로 헤더 파일 세트로 구현되지만 추가 편의를 위해 단일 헤더로 패키지화 된 입니다.

관련 문제