Node.jsとブラウザーで使える、describe/it形式のテスト構成と非同期テストに対応した、広く利用されているJavaScriptテストフレームワークです。
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 の数値は毎日更新されます。
関連プロジェクト
小さなテストの作成から、アプリやライブラリの複雑な機能テストまで対応するPythonテストフレームワーク。
Jestは、アサーション、モック、スナップショットテスト、対話型ウォッチモードを備えたJavaScriptテストフレームワークです。
標準のgo testランナーで動作する、アサーション、モック、テストスイートを備えたGo向けテストツールキットです。
AVAは、簡潔なAPI、詳細なエラー出力、テストファイルごとのスレッド分離を備えたNode.js向け並行テストランナーです。
PHPUnitは、xUnitアーキテクチャに基づく、PHP向けのプログラマー志向のユニットテストフレームワークです。