README

README

名前

Cutter

ライセンス

LGPL

Cutter?

CのためのUnit Testing Frameworkです。

Cutterの特徴は以下の通りです。

  • テストが簡単に書ける

  • 出力結果がデバッグに使いやすい

  • テストを共有ライブラリとしてビルドする

依存ライブラリ

  • GLib >= 2.14

入手方法

<URL:http://sourceforge.net/project/showfiles.php?group_id=208375>

% svn co https://cutter.svn.sourceforge.net/svnroot/cutter/trunk cutter

インストール

% ./configure
% make
# make install

使い方

% cutter [オプション] [libtest_*.soがあるディレクトリ]

オプション

-s DIRECTORY, --source-directory=DIRECTORY:

テストが失敗した場合にファイル名の前にDIRECTORYを付加しま す。Cutterの出力からテストが失敗した箇所にジャンプするツー ル(Emacsなど)と連携するための機能です。

-s DIRECTORY, --source-directory=DIRECTORY:

TEST_CASE_NAME1、TEST_CASE_NAME2のどれかにマッチしたテス トケースを実行します。もし、TEST_CASE_NAMEが"/"で囲まれて いた場合は(例: /test_/)正規表現として扱います。

-s DIRECTORY, --source-directory=DIRECTORY:

TEST_NAME1、TEST_NAME2のどれかにマッチしたテストを実行し ます。もし、TEST_NAMEが"/"で囲まれていた場合は(例: /test_/)正規表現として扱います。

-s DIRECTORY, --source-directory=DIRECTORY:

各テストケースを新しいスレッドで実行します。

-s DIRECTORY, --source-directory=DIRECTORY:

すべての利用可能なUIを表示し、終了します。

-s DIRECTORY, --source-directory=DIRECTORY:

UIを指定します。デフォルトはコンソールUIです。

-s DIRECTORY, --source-directory=DIRECTORY:

出力の詳細さを指定します。

-t TEST_CASE_NAME1,TEST_CASE_NAME2,..., --test-case=TEST_CASE_NAME1,TEST_CASE_NAME2,...:

このオプションはコンソールUIを使用する場合だけ有効です。

-s DIRECTORY, --source-directory=DIRECTORY:

yesまたはtrueが指定された場合はCutterはエスケープシーケン スで色付けして出力します。noまたはfalseが指定された場合は 色付けしません。autoあるいは値が省略された時は、可能なら 色付けをします。

-t TEST_CASE_NAME1,TEST_CASE_NAME2,..., --test-case=TEST_CASE_NAME1,TEST_CASE_NAME2,...:

このオプションはコンソールUIを使用する場合だけ有効です。

テストの仕方

テストの実行は以下のような流れになります.

  1. テストを作成する

  2. コンパイルし、libtest_*.soを作成する

  3. cutterを起動し、libtest_*.soを読み込ませ、テストをする

詳しくはTUTORIAL.jaとsample/stack/を参考にしてください。

リファレンス

表明

cutter/cut-assertions.hあるいは cutter-cut-assertions.html を見てください。


雛型

テストの雛型は以下のようになります.

#include <cutter.h>

#include "自分のプログラムのヘッダファイル"

void test_condition(void);
void test_strstr(void);

static int condition = 0;

void
setup (void)
{
    /* 初期化用コード */
    condition = 1;
}

void
teardown (void)
{
    /* 後片付け用コード */
    condition = 0;
}

void
test_condition(void)
{
    cut_assert_equal_int(1, condition,
                         "conditionの値はsetup()で1に設定されているはず");
  ...
}

void
test_strstr(void)
{
    cut_assert_equal_string("sub-string",
                            strstr("string sub-string", "sub"));
    ...
}