C の単体テスト フレームワークの 1 つがCheckです。C での単体テスト フレームワークのリストは、ここで見つけることができ、以下に再現されています。ランタイムに含まれる標準ライブラリ関数の数に応じて、それらのいずれかを使用できる場合と使用できない場合があります。
エースユニット
AceUnit (Advanced C and Embedded Unit) は、快適な C コード ユニット テスト フレームワークとしての地位を確立しています。JUnit 4.x を模倣しようとしており、リフレクションのような機能が含まれています。AceUnit は、組み込みソフトウェア開発などのリソースに制約のある環境で使用できます。重要なことに、単一の標準ヘッダー ファイルを含めることができず、ANSI / ISO C ライブラリから単一の標準 C 関数を呼び出すことができない環境でも問題なく動作します。また、Windows ポートも備えています。フォークを使用してシグナルをトラップすることはありませんが、作成者はそのような機能を追加することに関心を示しています。エースユニットのホームページをご覧ください。
GNU オートユニット
別のアドレス空間で単体テストを実行するための fork を含め、Check とほぼ同じ方向に沿っています (実際、Check の最初の作成者は GNU Autounit からアイデアを借用しました)。GNU Autounit は GLib を広範囲に使用します。つまり、リンクなどには特別なオプションが必要ですが、特に GTK や GLib を既に使用している場合は、これは大きな問題にはならないかもしれません。GNU Autounit ホームページを参照してください。
cUnit
また、GLib を使用しますが、単体テストのアドレス空間を保護するためにフォークしません。
C単位
標準 C、Win32 GUI 実装の計画あり。現在、単体テストのアドレス空間を fork したり、保護したりしません。初期開発中。CUnitのホームページを参照してください。
キュテスト
ソース ツリーにドロップする .c ファイルと .h ファイルを 1 つだけ含む単純なフレームワーク。CuTestのホームページを参照してください。
CppUnit
C++ 向けの優れた単体テスト フレームワーク。C コードのテストにも使用できます。安定しており、活発に開発されており、GUI インターフェイスを備えています。C に CppUnit を使用しない主な理由は、まず CppUnit が非常に大きいことと、次に C++ でテストを作成する必要があることです。これは、C++ コンパイラが必要であることを意味します。これらが懸念事項のように聞こえない場合は、他の C++ 単体テスト フレームワークと共に検討する価値があります。CppUnit のホームページを参照してください。
embUnit
embUnit (Embedded Unit) は、組み込みシステム用の別の単体テスト フレームワークです。これは、AceUnit に取って代わられたようです。組み込みユニットのホームページ。
MinUnit
マクロの最小限のセット、それだけです! 要点は、コードの単体テストがいかに簡単かを示すことです。MinUnitのホームページを参照してください。
安藤さんのCUnit
かなり新しく、明らかにまだ開発の初期段階にある CUnit の実装です。安藤さんのCUnitのホームページを見てください。
このリストは、2008 年 3 月に最後に更新されました。
その他のフレームワーク:
Cモッカ
CMocka は、モック オブジェクトをサポートする C 用のテスト フレームワークです。使い方もセットアップも簡単です。
CMocka のホームページを参照してください。
基準
Criterion はクロスプラットフォームの C ユニット テスト フレームワークで、自動テスト登録、パラメーター化されたテスト、理論をサポートし、TAP や JUnit XML などの複数の形式に出力できます。各テストは独自のプロセスで実行されるため、必要に応じてシグナルとクラッシュを報告またはテストできます。
詳しくはCriterionのホームページをご覧ください。
HWUT
HWUT は、C を強力にサポートする一般的な単体テスト ツールです。Makefile の作成、最小限の「反復テーブル」でコード化された大規模なテスト ケースの生成、ステート マシンのウォークアローン、C スタブの生成などに役立ちます。一般的なアプローチは非常にユニークです。評決は「良い標準出力/悪い標準出力」に基づいています。ただし、比較関数は柔軟です。したがって、チェックには任意のタイプのスクリプトを使用できます。標準出力を生成できる任意の言語に適用できます。
HWUT のホームページを参照してください。
Cグリーン
C および C++ 用の最新の移植可能な言語間ユニット テストおよびモック フレームワーク。オプションの BDD 表記、モック ライブラリ、単一プロセスで実行する機能 (デバッグを容易にするため) を提供します。テスト関数を自動で発見するテストランナーが利用可能です。ただし、プログラムで独自のものを作成できます。
これらすべての機能 (およびそれ以上) は、CGreen マニュアルで説明されています。
ウィキペディアでは、ユニット テスト フレームワークのリストの下に、C ユニット テスト フレームワークの詳細なリストが示されています。