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