간단한 assertion, BDD 스타일 매크로, 기본 마이크로벤치마킹을 제공하는 C++ 헤더 기반 단위 테스트 프레임워크입니다.
google/googletest
GoogleTest는 xUnit 스타일 테스트, 풍부한 어설션, GoogleMock을 제공하는 Google의 C++ 테스트 및 모킹 프레임워크입니다.
- 스타
- 39,713
- 포크
- 10,935
- 열린 이슈
- 552
- 마지막 커밋
- 5시간 전
어떤 프로젝트인가요?
GoogleTest는 xUnit 아키텍처를 기반으로 하는 Google의 C++ 단위 테스트 프레임워크입니다. 테스트 케이스를 작성하고 테스트 스위트로 묶은 뒤 자동 테스트 탐색을 통해 실행할 수 있어, 테스트를 일일이 등록할 필요가 없습니다. 저장소에는 이전에 별도 프로젝트였던 GoogleMock도 통합되어 있으며, 테스트 대상 코드를 격리할 수 있도록 모의 객체를 만드는 도구를 제공합니다.
이 프레임워크는 동등성, 비동등성, 예외 등을 확인하는 다양한 어설션과 사용자 정의 어설션 지원을 제공합니다. 특정 방식으로 코드가 종료되는지 확인하는 death test, 치명적·비치명적 실패 처리, 값 매개변수화 및 타입 매개변수화 테스트도 포함합니다. 테스트 실행 시 개별 테스트를 지정하거나, 실행 순서를 정하거나, 병렬로 실행할 수 있습니다.
GoogleTest는 컴파일러와 플랫폼에 대해 Google의 Foundational C++ Support Policy를 따르며, 1.18.x 브랜치에는 최소 C++17이 필요합니다. Chromium, LLVM, Protocol Buffers, OpenCV 등의 프로젝트에서 사용하며, 여러 서드파티 테스트 러너와 IDE 어댑터도 GoogleTest의 출력 형식을 기반으로 동작합니다.
핵심 기능
- 01테스트를 수동으로 등록하지 않아도 되는 자동 테스트 탐색.
- 02동등성 확인, 예외 검사, 사용자 정의 어설션 등을 포함하는 다양한 어설션 라이브러리.
- 03코드가 어떤 방식으로 종료되는지 확인하는 death test로, 오류 처리 경로를 테스트하는 데 유용합니다.
- 04값 매개변수화 및 타입 매개변수화 테스트.
- 05치명적·비치명적 실패 처리와 개별 실행, 순차 실행, 병렬 실행 옵션.
- 06모의 객체를 만들 수 있는 GoogleMock 포함.
활용 사례
- C++ 라이브러리나 애플리케이션의 단위 테스트 작성.
- GoogleMock으로 의존성을 모킹해 테스트 대상 코드 격리.
- death test를 사용해 오류 처리 코드 테스트.
- CI에서 대규모 C++ 테스트 스위트를 병렬 실행.
사용 전 알아둘 점
- 1.18.x 브랜치에는 C++17 이상이 필요합니다.
- 향후 Abseil에 대한 의존성이 추가될 예정입니다.
포함된 컬렉션
토픽
자주 묻는 질문
- googletest은(는) 무엇인가요?
- GoogleTest는 xUnit 스타일 테스트, 풍부한 어설션, GoogleMock을 제공하는 Google의 C++ 테스트 및 모킹 프레임워크입니다. GoogleTest는 xUnit 아키텍처를 기반으로 하는 Google의 C++ 단위 테스트 프레임워크입니다. 테스트 케이스를 작성하고 테스트 스위트로 묶은 뒤 자동 테스트 탐색을 통해 실행할 수 있어, 테스트를 일일이 등록할 필요가 없습니다. 저장소에는 이전에 별도 프로젝트였던 GoogleMock도 통합되어 있으며, 테스트 대상 코드를 격리할 수 있도록 모의 객체를 만드는 도구를 제공합니다.
- googletest은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- googletest은(는) BSD-3-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- googletest은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. googletest의 마지막 커밋은 2026년 11월 6일입니다.
- googletest은(는) 어디에 사용할 수 있나요?
- C++ 라이브러리나 애플리케이션의 단위 테스트 작성. GoogleMock으로 의존성을 모킹해 테스트 대상 코드 격리. death test를 사용해 오류 처리 코드 테스트. CI에서 대규모 C++ 테스트 스위트를 병렬 실행.
- googletest은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/google/googletest
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
PHPUnit은 xUnit 아키텍처를 따르는 PHP용 프로그래머 중심 단위 테스트 프레임워크입니다.
작은 테스트부터 애플리케이션과 라이브러리의 복잡한 기능 테스트까지 쉽게 작성할 수 있는 Python 테스트 프레임워크입니다.
Jest는 내장 어설션, 모킹, 스냅샷 테스트, 대화형 watch 모드를 제공하는 JavaScript 테스트 프레임워크입니다.
표준 go test 실행기와 함께 사용할 수 있는 assertion, mock, suite 구조를 제공하는 Go 테스트 도구 모음입니다.
Node.js와 브라우저에서 널리 쓰이는 JavaScript 테스트 프레임워크로, describe/it 방식의 테스트 구조와 비동기 테스트를 지원합니다.