Repolode
catchorg

catchorg/Catch2

シンプルなアサーション、BDDスタイルのマクロ、基本的なマイクロベンチマーク機能を備えた、C++向けのヘッダーベースのユニットテストフレームワーク。

スター
21,534
フォーク
3,437
未解決の Issue
454
最終コミット
17 日前

これは何?

Catch2はC++向けのユニットテストフレームワークです。テスト名には自由な文字列を使え、アサーションは通常のC++の論理式で記述できます。また、セクションを使うと、セットアップやティアダウンのコードをテスト内で局所的に共有できます。

ユニットテストに加えて、Catch2はシンプルなBDDマクロと基本的なマイクロベンチマーク機能を備えています。ベンチマークはデフォルトの実行対象から除外されており、[!benchmark]タグを指定して明示的に選ぶ必要があります。

develブランチのv3系では、Catch2は単一ヘッダーのライブラリから、複数のヘッダーと個別にコンパイルする実装を持つ通常のライブラリへと変わります。v2.xブランチは引き続きC++11をサポートし、Catch1.xはC++03をサポートします。

主な機能

  • 01テスト名には、有効な識別子でなくても任意の文字列を使えます。
  • 02アサーションは通常のC++の論理式で記述できます。
  • 03セクションを使うと、テストケース内の局所的な範囲でセットアップとティアダウンのコードを共有できます。
  • 04振る舞い駆動テスト向けのBDDスタイルのマクロを備えています。
  • 05基本的なマイクロベンチマーク機能を備え、[!benchmark]タグで実行できます。
  • 06外部依存関係はありません。

ユースケース

  • 最小限の準備でC++コードベースのユニットテストを書く。
  • C++プロジェクトでテスト駆動開発(TDD)を実践する。
  • 既存のテストに手軽なマイクロベンチマークを追加する。
  • BDDマクロを使って振る舞い形式の仕様を整理する。

使う前に知っておきたいこと

  • READMEには、v3の変更に合わせてドキュメントを更新中と記載されているため、一部のドキュメントはコードの更新に追いついていない可能性があります。

収録されている特集

トピック

よくある質問

Catch2 とは?
シンプルなアサーション、BDDスタイルのマクロ、基本的なマイクロベンチマーク機能を備えた、C++向けのヘッダーベースのユニットテストフレームワーク。 Catch2はC++向けのユニットテストフレームワークです。テスト名には自由な文字列を使え、アサーションは通常のC++の論理式で記述できます。また、セクションを使うと、セットアップやティアダウンのコードをテスト内で局所的に共有できます。
Catch2 は無料で使えますか?ライセンスは?
Catch2 は BSL-1.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
Catch2 は今もメンテナンスされていますか?
活発にメンテナンス中。Catch2 の最終コミットは 2026年10月8日 です。
Catch2 は何に使えますか?
最小限の準備でC++コードベースのユニットテストを書く。 C++プロジェクトでテスト駆動開発(TDD)を実践する。 既存のテストに手軽なマイクロベンチマークを追加する。 BDDマクロを使って振る舞い形式の仕様を整理する。
Catch2 はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/catchorg/Catch2

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト