シンプルなアサーション、BDDスタイルのマクロ、基本的なマイクロベンチマーク機能を備えた、C++向けのヘッダーベースのユニットテストフレームワーク。
google/googletest
GoogleTestは、xUnit形式のテスト、豊富なアサーション、GoogleMockを提供するGoogle製のC++テスト・モックフレームワークです。
- スター
- 39,713
- フォーク
- 10,935
- 未解決の Issue
- 552
- 最終コミット
- 昨日
これは何?
GoogleTestは、xUnitアーキテクチャに基づくGoogle製のC++ユニットテストフレームワークです。テストケースを作成してスイートにまとめ、自動テスト検出によって実行できるため、テストを手作業で登録する必要はありません。このリポジトリには、以前は独立していたGoogleMockプロジェクトも統合されており、テスト対象のコードを切り離すためのモックオブジェクト作成ツールを提供します。
等価性や不等価性、例外などを検証する幅広いアサーションに加え、ユーザー定義アサーションも利用できます。コードが特定の形で終了することを検証するデステスト、致命的・非致命的な失敗の処理、値パラメーター化テストと型パラメーター化テストも備えています。テスト実行では、個別のテストを指定したり、順序を指定したり、並列実行したりできます。
GoogleTestは、コンパイラーとプラットフォームに関するGoogle's Foundational C++ Support Policyに準拠しており、1.18.xブランチではC++17以降が必要です。Chromium、LLVM、Protocol Buffers、OpenCVなどのプロジェクトで使われているほか、サードパーティ製のテストランナーやIDEアダプターの多くが、その出力を利用しています。
主な機能
- 01テストを手作業で登録せずに済む、自動テスト検出。
- 02等価性や例外の検証、ユーザー定義アサーションなどに対応した幅広いアサーションライブラリ。
- 03コードの終了のしかたを検証でき、エラー処理のテストに役立つデステスト。
- 04値パラメーター化テストと型パラメーター化テスト。
- 05致命的・非致命的な失敗処理に対応し、テストを個別、指定順、並列で実行可能。
- 06モックオブジェクトの作成に使えるGoogleMockを同梱。
ユースケース
- C++ライブラリやアプリケーションのユニットテストを書く。
- GoogleMockで依存関係をモック化し、テスト対象のコードを切り離す。
- デステストでエラー処理コードを検証する。
- 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で依存関係をモック化し、テスト対象のコードを切り離す。 デステストでエラー処理コードを検証する。 CIで大規模なC++テストスイートを並列実行する。
- googletest はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/google/googletest
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PHPUnitは、xUnitアーキテクチャに基づく、PHP向けのプログラマー志向のユニットテストフレームワークです。
小さなテストの作成から、アプリやライブラリの複雑な機能テストまで対応するPythonテストフレームワーク。
Jestは、アサーション、モック、スナップショットテスト、対話型ウォッチモードを備えたJavaScriptテストフレームワークです。
標準のgo testランナーで動作する、アサーション、モック、テストスイートを備えたGo向けテストツールキットです。
Node.jsとブラウザーで使える、describe/it形式のテスト構成と非同期テストに対応した、広く利用されているJavaScriptテストフレームワークです。