GTest 설정하기
프레임워크 추가하고 실행하기
GTest 설정하기은(는) CoddyKit의 무료 C++ Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C++ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
테스트 프레임워크가 필요한 이유
GoogleTest(GTest)는 널리 사용되는 C++ 단위 테스트 프레임워크입니다. 테스트 등록, 다양한 어설션, 픽스처, 명확한 결과 보고 기능을 제공하므로 코드를 자동으로 검증할 수 있습니다.
GTest 가져오기
GTest를 가져오는 일반적인 방법은 다음과 같습니다.
- 시스템 패키지(예:
libgtest-dev) - GitHub에서 가져오도록 CMake에서 FetchContent 사용
- 프로젝트에 포함한 서브모듈
새 프로젝트에서는 FetchContent가 가장 이식성이 좋습니다.
FetchContent를 사용하는 CMake
최소한의 CMake 설정으로 GoogleTest를 다운로드하고 연결할 수 있습니다.
# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
)
FetchContent_MakeAvailable(googletest)
add_executable(my_tests test_main.cpp)
target_link_libraries(my_tests GTest::gtest_main)첫 테스트
테스트 스위트 이름과 테스트 이름을 받는 TEST 매크로로 테스트를 선언합니다. 내부에서는 어설션을 사용합니다.
#include <gtest/gtest.h>
int add(int a, int b) { return a + b; }
TEST(MathTest, AddsPositive) {
EXPECT_EQ(add(2, 3), 5);
}main()이 필요하지 않은 경우
GTest::gtest_main에 연결하면 등록된 모든 테스트를 실행하는 main()이 제공됩니다. 테스트 사례만 작성하면 됩니다.
직접 main 작성하기
사용자 정의 진입점이 필요하다면 직접 GTest를 초기화하세요.
#include <gtest/gtest.h>
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}빌드 및 실행
CMake를 구성한 후 빌드하고 실행합니다.
cmake -S . -B buildcmake --build build./build/my_tests
GTest는 색상이 적용된 통과/실패 요약을 출력합니다.
출력 읽기
각 테스트는 [ RUN ]을 출력한 다음 [ OK ] 또는 [ FAILED ]를 출력합니다. 마지막 줄에는 통과한 테스트 수가 표시됩니다. 실패 정보에는 파일, 줄, 예상 값과 실제 값이 포함됩니다.
일부만 실행하기
--gtest_filter 플래그를 사용하면 일치하는 테스트만 실행할 수 있습니다. 예를 들어 ./my_tests --gtest_filter=MathTest.*와 같이 사용합니다. 이렇게 하면 범위를 좁힌 디버깅을 더 빠르게 수행할 수 있습니다.
CTest와 통합하기
enable_testing()을 호출하고 gtest_discover_tests로 바이너리를 등록하면 ctest가 CI에서 테스트 스위트를 실행할 수 있습니다.
# CMakeLists.txt
enable_testing()
include(GoogleTest)
gtest_discover_tests(my_tests)건강한 워크플로
실패하는 테스트를 작성하고, 코드를 구현한 다음, 테스트가 통과하는지 확인하세요. 모든 변경 사항마다 실행할 수 있도록 테스트를 빠르고 독립적으로 유지하세요.
빠른 확인
main()이 어떻게 제공되는지 떠올려 보세요.
복습
Google Test를 설정했습니다.
- FetchContent, 패키지 또는 서브모듈을 통해 가져옵니다
TEST(Suite, Name)으로 테스트를 선언합니다- 자동
main()을 사용하려면gtest_main에 연결합니다 - 빌드, 실행, 필터링하고 CTest와 통합합니다
자주 묻는 질문
“GTest 설정하기” 강의는 무료인가요?
네 — “GTest 설정하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C++ Academy 강의 전체를 잠금 해제할 수 있습니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“GTest 설정하기”에서 뭘 배우나요?
프레임워크 추가하고 실행하기 브라우저에서 직접 실행하는 실습 코드로 C++ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C++ Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C++ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“GTest 설정하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C++ Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C++ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- GTest 설정하기
- 검증과 매처
- 픽스처와 설정
- GMock으로 모킹하기