Program Tip

GoogleTest vs CppUnit : 사실

programtip 2020. 11. 25. 08:22
반응형

GoogleTest vs CppUnit : 사실


향후 몇 년 동안 C ++ 단위 테스트 프레임 워크를 설정하는 과정에서 GoogleTestCppUnit을 최종 선정 했습니다 . 나는 둘 다 경험이 있으며 내 무거운 선호는 GoogleTest입니다. 어쨌든 내 상사를 설득하기 위해 몇 가지 사실필요 하므로 매뉴얼, 위키 페이지 및 일부 소스를 포함하여 인터넷에서 일부 읽기를했습니다. GoogleTest의 장점 목록과 단일 CppUnit 장점 (그래픽 테스트 실행기)을 생각해 냈습니다. 여기에서는 인지 된 유용성에 따라 정렬됩니다 .

  • INSTANTIATE_TEST_CASE_P는 데카르트 곱을 포함하여 원하는 매개 변수 세트로 테스트 케이스를 인스턴스화합니다.
  • 개인 클래스 멤버 테스트를위한 FRIEND_TEST (모든 레거시 코드에 대해)
  • 어설 션을 중단 점으로 전환
  • 치명적이지 않은 주장
  • "즉시"googlemock 통합
  • 자동 테스트 감지, 열거 할 필요 없음
  • 테스트를 비활성화 및 활성화 할 수 있습니다.
  • 실행할 테스트는 이름 패턴을 사용하여 선택할 수 있습니다.
  • 값 / 유형 매개 변수화 된 테스트
  • 사용자 정의 술어 어설 션
  • 사망 테스트
  • 훨씬 더 풍부한 주장
  • 유형 주장
  • 서브 루틴에 대한 주장
  • 추가 디버그 정보는 <<를 사용하여 어설 션에 추가 할 수 있습니다.
  • RecordProperty는 속성의 마지막 값을 XML 출력으로 내 보냅니다.
  • SCOPED_TRACE는 서브 루틴 또는 루프 내부에서 발생하는 어설 션 실패의 컨텍스트를 이해하는 데 도움이됩니다.
  • xUnit XML 출력은 사이에 XSLT 변환없이 Jenkins에서 즉시 표시 할 수 있습니다.
  • 사용자 지정 유형 프린터 지원
  • 테스트 표시에 소요되는 시간 (CppUnit에서도 가능하다고 생각하지만 아직 파악하지 못했습니다)
  • 테스트 이벤트 리스너 API (사용자 정의 플러그인)
  • 테스트 셔플
  • 예외 및 RTTI 없음

위의 모든 것이 CppUnit에서 지원되지 않는다고 가정하는 것이 맞습니까? CppUnit에서 사용할 수없는 유용한 GoogleTest 기능이 있습니까?

마지막으로 GoogleTest에 없는 멋진 CppUnit 기능 있습니까?

감사!


이전 버전의 gcc 컴파일러를 사용하거나 테스트중인 코드가 vxWorks (또는 VxSim)에서 실행되는 경우 Googletest 프레임 워크보다 cppUnit을 사용할 가능성이 더 높습니다.

반면에 googletest 프레임 워크의 또 다른 기능은 3 가지 다른 수준의 설정 / 해체가 가능하다는 것입니다.

  • 프로그램 당
  • 테스트 케이스 (또는 테스트 그룹) 당
  • 개별 테스트 인스턴스 당

이것이 cppUnit에서 지원되는지 확실하지 않지만 이는 특히 레거시 시스템에서 매우 편리 할 수 ​​있습니다.

또한 Eclipse CDT 용 googletest 플러그인이 있습니다.


xUnit ++을 보지 않았다면 , 사용할 수있는 기능 (gtest 포함)에 만족하지 않았기 때문에 특별히 만들었습니다. 대부분의 목록이 지원되며 그렇지 않은 경우 "필수"기능인 경우 추가 할 의향이 있습니다.


이것이 제가 보는 이점입니다. 몇 가지 GUI 테스트 실행기가 있습니다.

  1. https://github.com/ospector/gtest-gbar
  2. https://github.com/SandyChapman/gtest-runner-qt

나는 첫 번째 것을 사용했으며 개발 중이며 약간의 작업이 필요하지만 꽤 잘 작동합니다. 다른 옵션이 있는지 모르겠습니다.

참고 URL : https://stackoverflow.com/questions/7922289/googletest-vs-cppunit-the-facts

반응형