OSS探訪GitHubでログイン

C++のunit test・assertion・parameterized test・mockを統合するGoogleのtesting framework

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
39,616
主要言語
C++
ライセンス
BSD-3-Clause
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

GoogleTestはGoogleのC++ testing/mocking frameworkです。xUnit styleのtest discoveryとassertionを中心に、fatal/non-fatal failure、death test、value/type parameterized test、GoogleMockによるmockingを同一repositoryで提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

TEST/TEST_Fと豊富なassertionでunit testを記述する

test caseを自動discoverし、equality/inequality、exception等のassertionを使ってC++ codeのbehaviorを検証できます。

出典:[1]

fixture・value/type parameterized test・death testを使う

共通setupをfixtureへまとめ、input/typeの組み合わせをparameterized testで展開し、異常終了を期待するerror pathはdeath testとして検証できます。

出典:[1]

GoogleMockとCMake test discoveryを同じtoolchainに組み込む

formerly separateだったGoogleTest/GoogleMockは同一repositoryで管理され、CMakeではGTest::gtest_mainとgtest_discover_testsを使ってCTestへtestを登録できます。

出典:[1][2]

向いている用途

C++ library/applicationのunit testとmockを標準化したい場合に向く

small unit testからparameterized/mocked testまで一つのframeworkへ揃え、CMake/Bazel/CIへ統合したいprojectに適します。

出典:[1][2]

導入前の確認

1.18.xはC++17以上を必須とする

1.18.0から少なくともC++17 compiler/standard libraryが必要です。旧C++14環境を維持する場合はsupport policy差を確認します。

出典:[1][3][2]

release branchはfeature追加対象ではなくupstreamはlatest commitも推奨する

1.18.0 release noteは1.18.x branchへ新feature patchを受け付けず、critical bug fixのみ例外的に扱うとしています。tag固定かmain追従かは再現性方針に合わせます。

出典:[3]

参考にした公式資料

  1. [1]GoogleTest 1.18.0 README(2026-10-04)
  2. [2]GoogleTest 1.18.0 CMake quickstart(2026-10-04)
  3. [3]GoogleTest 1.18.0 release(2026-10-04)
  4. [4]GoogleTest BSD 3-Clause license(2026-10-04)
編集部からの補足

1.18.xはC++17以上が必須です。release branchは新feature追加対象ではなく、upstreamはlatest commit利用も推奨しているため、再現性重視ならtag固定で運用してください。

3ステップで試す

  1. 1

    GoogleTest v1.18.0を取得する

    C++17 baselineのstable release tagへ固定します。

    git clone --depth 1 --branch v1.18.0 https://github.com/google/googletest.git googletest-1.18.0
  2. 2

    最小CMake test projectを作る

    local checkoutをadd_subdirectoryで取り込み、CTest discoveryまで設定します。

    mkdir -p gtest-demo && printf '%s\n' 'cmake_minimum_required(VERSION 3.14)' 'project(gtest_demo LANGUAGES CXX)' 'set(CMAKE_CXX_STANDARD 17)' 'set(CMAKE_CXX_STANDARD_REQUIRED ON)' 'add_subdirectory(../googletest-1.18.0 googletest-build EXCLUDE_FROM_ALL)' 'enable_testing()' 'add_executable(hello_test hello_test.cc)' 'target_link_libraries(hello_test PRIVATE GTest::gtest_main)' 'include(GoogleTest)' 'gtest_discover_tests(hello_test)' > gtest-demo/CMakeLists.txt && printf '%s\n' '#include <gtest/gtest.h>' 'TEST(HelloTest, BasicAssertions) { EXPECT_EQ(7 * 6, 42); }' > gtest-demo/hello_test.cc
  3. 3

    buildしてCTestからtestを実行する

    GoogleTest test binaryをbuildし、discoveryされたtestをCTestから実行します。

    cmake -S gtest-demo -B gtest-demo/build && cmake --build gtest-demo/build -j2 && ctest --test-dir gtest-demo/build --output-on-failure
公式READMEで確認

成長

成長の推移 · 直近30日

39,616 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
9
Open PR
192

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
39,616
Forks
10,909
Watchers
1,272
Open Issues
329
Contributors
389
所有者種別
Organization
主要言語
C++
ライセンス
BSD-3-Clause
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?