Windows기반 GoogleTest 설치하기
Google Test(googletest)는 구글에서 개발한 C++ 단위 테스트(Unit Testing) 프레임워크입니다. 대표적으로 다음과 같은 특징을 자랑하고 있습니다.
- 쉽고 직관적인 API로 다양한 테스트(동등성, 예외 처리, 성능 등)를 작성할 수 있습니다.
- 단독 실행 파일을 만들어 터미널이나 CI 환경에서 테스트를 쉽게 실행할 수 있습니다.
- 테스트 스위트(Test Suite) 단위로 구분하거나, Parameterized Tests 등을 사용해 유연하게 테스트 케이스를 구성할 수 있습니다.
- C++ 표준 라이브러리, POSIX, Windows API 등에 의존적이지 않아서 이식성이 좋습니다.
즉, Google Test를 사용하면 C++ 코드의 동작을 자동으로 검증하고, 리팩터링 이후에도 기능이 올바르게 동작하는지 신속하게 확인할 수 있게 됩니다.
본 문서에서는 GoogleTest를 설치하고 전역으로 사용할 수 있도록 환경을 설정하는 부분까지 작성됩니다. 기타 활용하는 방법들은 다른 글을 통해 정리될 것입니다.
Windows 환경에서 C++ 개발하기 위한 환경으로 다음 환경을 기본으로 이용하는 것을 배경으로 GoogltTest를 설치하겠습니다. 따라서 각 도구에 대한 설치가 되어 있어야 합니다.
- Cygwin
- VS Code
- GoogleTest
물론 설치 순서에서 Cygwin은 GoogleTest 설치 이전에 반드시 설치되어 있어야 합니다. 다음 문서에서는 C++ 언어 사용을 위한 Cygwin과 VS Code 설정이 정리되어 있으므로 참고하여 설치 합니다.
- Windows에서 Cygwin 설치하는 방법
[Cygwin]Windows에서 Linux처럼 C,C++개발!
Cygwin+VS Code 환경 설정오늘은 C++ 개발을 위한 VS Code + Cygwin 환경 설정 방법을 작성해 보겠습니다. Cygwin을 사용하면 Windows 환경에서 리눅스와 유사한 개발 환경을 구성할 수 있어, 특히 GNU 컴파
all-tech-hub.tistory.com
- Windows에서 Visual Studio Code(VS Code)설치하는 방법
[VSCode]Windows에 VS Code를 먼저 설치해볼까!
VS Code 설치 가이드1. VS Code란?VS Code(Visual Studio Code)는 Microsoft에서 제공하는 무료 코드 편집기로, 가볍고 빠른 성능을 제공하면서도 강력한 기능을 갖춘 개발 환경입니다. 다양한 프로그래밍 언어
all-tech-hub.tistory.com
1. Google Test 다운로드 및 빌드
먼저 googletest 소스를 다운로드 해야 합니다. 방법은 git clone으로 진행하거나 압축 파일을 직접 다운로드 할 수 있습니다. 1.1 또는 1.2 방법 중 한 가지로 진행해서 googletest 소스를 다운로드 합니다.
1.1 Git으로 다운로드하는 경우
Git이 설치되어 있다면 다음과 같이 git clone으로 받을 수 있습니다.
cd ~ git clone https://github.com/google/googletest.git
cd googletest
1.2 압축 파일로 다운로드하는 경우
Google Test는 공식 GitHub 저장소에서 소스 코드를 직접 받을 수 있습니다.
GitHub - google/googletest: GoogleTest - Google Testing and Mocking Framework
GoogleTest - Google Testing and Mocking Framework. Contribute to google/googletest development by creating an account on GitHub.
github.com
- Google Test Releases 페이지에서 원하는 버전(zip)을 다운로드합니다.
- 적절한 폴더(예: C:\<사용자 지정 폴더>\googletest)에 압축을 풉니다.
1.3 빌드하기
- Cygwin 터미널에서 구글테스트(googletest) 폴더로 이동합니다.
- 저는 압축 파일이 googletest-main으로 되어 있고 압축을 해제 했기 때문에 googletest 대신 googletest-main이므로 각자의 파일명에 따라 진행합니다.
$ cd googletest (또는 cd googletest-main)
$ mkdir build
$ cd build
- cmake를 사용해 Makefile 생성 후 빌드하는 절차를 다음과 같이 진행합니다.
$ cmake ..
$ make
잠깐! 혹시 make 도중 warning 메시지가 보인다면 다음 더 보기를 클릭해서 확인하세요.



build 도중 waring이 여러개 보여서 당황할 수 있습니다. 하지만 googletest github를 방문하면 알 수 있는 내용이므로 걱정하지 않아도 됩니다. 본 글에서 사용한 버전은 2025년 2월 기준 최신 버전인 1.16.0 버전입니다. 이 버전은 C++14 이상을 요구합니다.
앞으로 업데이트 되는 googltest 버전과 C++ 17 버전이 맞아진다면 해당하는 경고는 사라질 것이며, 만약 여러분들이 사용하는 gcc 버전이 C++ 14가 가능한 버전이라면 해당 경고는 사라지게 됩니다.
이 경고는 무시하고 계속 사용할 수 있습니다.
- 빌드 완료 후 libgtest.a, libgtest_main.a 등의 라이브러리가 생성됩니다.
- 빌드 결과물 위치는 build/ 내부 폴더에 생깁니다(버전에 따라 조금 달라질 수 있음).
2. Google Test를 전역적으로 사용하기 위한 설치/환경 설정
빌드가 끝난 Google Test 라이브러리를 다른 프로젝트에서도 쉽게 사용하기 위해 전역적으로 설치하거나 특정 폴더에 두고 환경 변수를 설정할 수 있습니다. 다음 2가지 방법 중 선택해서 진행할 수 있습니다.
2.1 /usr/local 경로에 자동 복사 (추천)
- cygwin 환경에서 전역적으로 사용할 수 있는 특정 폴더는 /usr/local/lib, /usr/local/include로 인식되므로 *.a 파일과 googletest/include 파일들이 해당 특정 폴더에 위치해 있어야 합니다.
- 본 문서에서는 특정 폴더로 빌드된 라이브러리와 헤더 파일을 자동으로 복사할 수 있도록 다음과 같은 방법을 이용합니다.
- make를 진행했던 build 폴더에서 다음을 진행합니다.
$ make install
- make install이 진행 되었다면 해당 폴더에 복사된 내용들을 확인할 수 있습니다.
2.1 /usr/local 경로에 수동 복사
- 관리자 권한이 필요할 수 있습니다.
- Cygwin 내 전역에서 GoogleTest를 사용할 수 있도록 합니다.
- Google Test 빌드 결과물(libgtest.a, libgtest_main.a)와 헤더 파일(googletest/include/gtest)을 /usr/local 폴더 아래로 복사합니다.
- 만약 수동으로 진행한 후 해당 폴더의 내용이 위와 같이 정상으로 복사되었는지 확인 후 전역으로 사용하도록 합니다.
# 빌드된 라이브러리 복사
$ cp lib/*.a /usr/local/lib/
# 헤더 복사
$ cp -r ../googletest/include/gtest /usr/local/include/
참고: Cygwin 환경에서는 기본적으로 /usr/local/lib, /usr/local/include를 검색 경로로 인식합니다.
3. VS Code에서 Google Test 사용해보기
VS Code, GoogleTest 모두 설치가 되었다면 TEST 코드가 정상적으로 실행되는지 확인할 절차가 남아있습니다. 다음과 같이 간략한 프로젝트를 구성하고 컴파일 후 TEST 진행이 이뤄지는 확인합니다.
원하는 위치에 프로젝트 폴더(~/workspace/helloGtest)를 만들기 다음과 같이 프로젝트 폴더 내에 test 코드를 생성하고 테스트 실행하는 방법을 진행합니다.
helloGtest/
└─ test_example.cpp
- test_example.cpp(예시)
#include <gtest/gtest.h>
int add(int a, int b) {
return a + b;
}
TEST(AddTest, PositiveNumbers) {
EXPECT_EQ(add(2, 3), 5);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
이제 설치되어 있는 컴파일러를 통해 Test 파일을 컴파일 해 봅니다. gtest의 구동을 확인하기위해 이번 글에서는 빌드 도구를 사용하지 않고 다음과 같이 g++를 이용한 간단한 컴파일을 하겠습니다.
- 컴파일 명령어에 -D_POSIX_C_SOURCE=200809L 옵션을 추가하면, POSIX 표준(2008 이상)을 활성화하여 fileno와 fdopen의 선언이 포함됩니다.
$ g++ -std=c++14 -D_POSIX_C_SOURCE=200809L -isystem /usr/local/include test_example.cpp -L/usr/local/lib -lgtest -lgtest_main -lpthread -o test_example
테스트 결과가 정상적으로 출력되는지 확인합니다.
위와 같은 결과가 나왔다면 googletest를 사용할 수 있는 환경이 준비되었습니다.
- googletest에 대한 구체적인 내용은 차츰 학습해야하지만 시작할 수 있는 준비가 되었습니다.
- CMake, Make 이용하는 방법은 다른 글을 통해 소개 합니다.
'TDD 테스트주도개발 > TDD for C++' 카테고리의 다른 글
[googletest문법4]파라메터 이용 TEST_P() 사용법 (1) | 2025.03.13 |
---|---|
[googletest문법3]테스트 픽스처 TEST_F() 사용법 (0) | 2025.03.10 |
[Googletest문법2]단일테스트 TEST() 작성방법 (0) | 2025.03.08 |
[GoogleTest문법1]매크로 종류 (0) | 2025.03.06 |
[TDD C++(2)]VS Code+Gtest 환경 설정 (0) | 2025.03.04 |