CUnitって・・・
CUnitとは...
単体テストを支援する 「テスティング・フレームワーク」である
「xUnit」のC言語バージョンです。
詳細設計が終了すれば単体テストを行いますが
それらの単体テストの集合体(テストスイート)をCUnitにて作成・実行することが可能となります。
CUnitの基本的な考え方として
テストレジストリ
Lスイート1(項目?)
Lテストケース1(パターン?)
Lスイート2
Lテストケース1
Lテストケース2
というふうに
段階的にテストを設計することが可能です。
<参考>
とりあえず環境構築
ひとまず、参考URLのとおりに
Cygwin上でCUnitを動作させることを目指します。。
1. cygwin を以下からDL
2. cygwin インストール
→gcc make を追加... 他はデフォルトまま
3. CUnit を以下からDL
→CUnit-2.1-2-src.tar.bz2.tar.bz2.tar.bz2
4. cygwin 起動
5.解凍
$ tar -xvf CUnit-2.1-2-src.tar.bz2.tar.bz2.tar.bz2
→CUnit-2.1-2/が作成される
6.、ビルド&インストール
$./configure --enable-curses
...(--enable-curses オプション:カーソルキーを用いたテキストベースのインタラクティブな
ユーザーインターフェースを提供してくれます。)
$make
...
$make install
...
これだけで導入完了!!!
どやって使うの?
環境は整ったようなので
実際に使い方の勉強も兼ねて動かしてみたいと思います。
1. 適当な*.cファイル作成(main.c)
2. 評価対象の関数ソースを書きます。
(この関数をテストの対象と想定します。)
// 評価対象関数
int hoge( int a )
{
return a;
}
3. main()と評価関数(テストケース)を作成
// main
int main( void )
{
// test suite
CU_pSuite cu_suite;
printf("Hello CUnit Would!!\n");
// ------------------
// CUnit 初期化
// ------------------
// テストレジストリ 初期化
CU_initialize_registry();
// テストスイート登録
cu_suite = CU_add_suite("hoge", NULL,
NULL);
// ------------------
// CUnit テスト登録
// ------------------
// テスト関数1
CU_add_test( cu_suite, "test_hoge_001",
test_hoge_001 );
// テスト関数2
CU_add_test( cu_suite, "test_hoge_002",
test_hoge_001 );
// テスト関数3
CU_add_test( cu_suite, "test_hoge_003",
test_hoge_001 );
// ------------------
// CUnit 実行
// ------------------
CU_console_run_tests();
CU_cleanup_registry();
// 正常
return 0;
}
// test 1
void test_hoge_001( void )
{
CU_ASSERT( 1 == hoge( 1 ) );
}
// test 2
void test_hoge_002( void )
{
CU_ASSERT( 2 == hoge( 2 ) );
}
// test 3
void test_hoge_003( void )
{
CU_ASSERT( 3 == hoge( 3 ) );
}
...みたいな感じで書く(添付ファイルにソースおいておきます)
[備考]
CU_ASSERT( RESULT );
RESULT=TRUE(成功),FALSE(失敗)
4. make(cunittest.exeの作成)
$gcc main.c -o cunittest.exe -Wall -L/usr/local/lib -lcunit
[備考]
-L:ライブラリ格納先
-l:使用ライブラリ
5. とりあえず実行してみる
$./cunittest.exe
> CUnit - A Unit testing framework for C - Version 2.1-2
> http://cunit.sourceforge.net/
>
>
>***************** CUNIT CONSOLE - MAIN MENU
******************************
>(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp
(Q)uit
>Enter command:
と表示され、コマンドを要求される。
6. テストの実行
5が表示されている状態で
"r"+Enter(run all)
で登録されているスイートが実行される。
>Running Suite : hoge
> Running Test : test_hoge_001
> Running Test : test_hoge_002
> Running Test : test_hoge_003
>
>Run Summary: Type Total Ran Passed Failed Inactive
> suites 1 1 n/a 0 0
> tests 3 3 3 0 0
> asserts 3 3 3 0 n/a
>
>Elapsed time = 0.000 seconds
以上!!!CUnitの導入編でした!!!!!
<参考>
最終更新:2013年02月11日 16:35