GoogleTest vs CppUnit : 사실
향후 몇 년 동안 C ++ 단위 테스트 프레임 워크를 설정하는 과정에서 GoogleTest 및 CppUnit을 최종 선정 했습니다 . 나는 둘 다 경험이 있으며 내 무거운 선호는 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 테스트 실행기가 있습니다.
나는 첫 번째 것을 사용했으며 개발 중이며 약간의 작업이 필요하지만 꽤 잘 작동합니다. 다른 옵션이 있는지 모르겠습니다.
참고 URL : https://stackoverflow.com/questions/7922289/googletest-vs-cppunit-the-facts
'Program Tip' 카테고리의 다른 글
systemgroup.com.apple.configurationprofiles 경로에 대한 시스템 그룹 컨테이너 (0) | 2020.11.25 |
---|---|
와이드 스크린 모니터를 두 개 이상의 가상 모니터로 분할하는 방법이 있습니까? (0) | 2020.11.25 |
사용할 @NonNull Java 주석 (0) | 2020.11.25 |
배우 기반 시스템 구축을위한 디자인 패턴 / 모범 사례 (0) | 2020.11.25 |
파이썬 db-api : fetchone vs fetchmany vs fetchall (0) | 2020.11.25 |