CUTTER(1)

名前

cutter - C言語・C++言語用のxUnit系テスティングフレームワーク

書式

cutter [オプション...] テストディレクトリ

cutter --mode=analyze [オプション ...] ログディレクトリ

説明

CutterはC言語・C++言語用のxUnit系単体テスト（ユニットテスト） フレームワークです。Cutterはプログラマに2つの重要なインターフェ イスを提供します。

1.  簡単にテストが書けるAPI

2.  簡単にデバッグできるユーザインターフェイス

Cutterはプログラマが新しいテストを書くこと、すでにあるテスト を実行すること、実行したテストからフィードバックを得ることを 支援します。

テストディレクトリにはtest_*.soがあるディレクトリを指 定します。Cutterはtest_*.soは再帰的に検索します。

ログディレクトリにはCutterのログファイルがあるディレク トリを指定します。Cutterは--stream-directoryオプションがして いされるとテスト結果をログファイルに出力します。

オプション

--version
    バージョンを表示して終了します。

--log-level=LEVEL
    ログレベルをLEVELに設定します。 LEVELは「error|warning」というように「|」で区切って指定できます。 「+trace|+info」というようにレベルの前に「+」をつけるとデフォルトのレベルに 指定したレベルを追加できます。 「-error|-warning」というようにレベルの前に「-」をつけるとデフォルト のレベルから指定したレベルを取り除けます。 指定できるレベルは以下の通りです。

    • default: 「critical|error|warning|message」と同じ。

    • none: なにも出力しない。

    • critical: 致命的な問題のみ出力。

    • error: エラーのみ出力。

    • warning: 警告のみ出力。

    • message: 通常のメッセージのみ出力。

    • info: 付加情報のみ出力。

    • debug: デバッグ情報のみ出力。

    • traces: トレース情報のみ出力。

    • all: すべての情報を出力。 デフォルトは「default」です。

--mode=[test|analyze]
    実行モードを指定します。testモードのときはテストを実行し ます。analyzeモードのときはテスト結果を解析します。 デフォルトはtestです。

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

-t TEST_CASE_NAME, --test-case=TEST_CASE_NAME
    TEST_CASE_NAMEにマッチしたテストケースを実行します。もし、 TEST_CASE_NAMEが"/"で囲まれていた場合は（例: /test_/）正 規表現として扱います。 このオプションは複数回指定できます。その場合は、どれかの TEST_CASE_NAMEにマッチしたテストケースを実行します。（OR）

-n TEST_NAME, --name=TEST_NAME
    TEST_NAMEにマッチしたテストを実行します。もし、TEST_NAME が"/"で囲まれていた場合は（例: /test_/）正規表現として扱 います。 このオプションは複数回指定できます。その場合は、どれかの TEST_NAMEにマッチしたテストケースを実行します。（OR）

-m, --multi-thread
    各テストケースを新しいスレッドで実行します。 デフォルトでは無効です。

--max-threads=MAX_THREADS
    最大MAX_THREADSスレッドを同時に動かしてテストケースと繰り 返しテストを実行します。-1を指定すると最大同時スレッド数 を制限しません。 デフォルトは最大10スレッドです。

--disable-signal-handling
    C-cでのテスト途中終了や、SEGV時のバックトレース取得などを 行うシグナル処理機能を無効にします。シグナルを用いてるラ イブラリをテストする場合はこの機能が障害になることがあり ます。その場合はこのオプションでCutterのシグナル処理機能 を無効にしてください。 デフォルトでは有効です。

--test-case-order=[none|name|name-desc]
    各テストケースの実行順を並び替えます。 noneを指定すると並び替えません。nameを指定するとテストケー ス名で昇順に並び替えます。name-descを指定するとテストケー ス名で降順に並び替えます。 デフォルトはnoneです。

--exclude-file=FILE
    テストを集めるときにFILEを読み込みません。

--exclude-directory=DIRECTORY
    DIRECTORY以下にあるテストを検索しません。

--fatal-failures
    失敗を致命的な問題として扱います。つまり、表明に失敗する とテストの実行を中断します。 デフォルトでは無効です。

--keep-opening-modules
    ロードしたモジュールを開いたままにします。シンボルを解決 できるようになるため、デバッグ時に便利です。 デフォルトでは無効です。

--enable-convenience-attribute-definition
    便利ですが、危険でもある、 "#{属性名}_#{テスト名 - 'test_'プリフィックス}"属性設定関 数を有効にします。 デフォルトでは無効です。

--stop-before-test
    テスト関数を実行する直前にブレークポイントを設定します。 デバッガ上でcutterを実行し、ステップインすれば、簡単にテ スト関数に入ることができます。 デフォルトでは無効です。

-u=[console|gtk], --ui=[console|gtk]
    UIを指定します。 デフォルトはコンソールUIです。

-v[s|silent|n|normal|v|verbose], --verbose=[s|silent|n|normal|v|verbose]
    出力の詳細さを指定します。 このオプションはコンソールUIを使用する場合だけ有効です。

-c[yes|true|no|false|auto], --color=[yes|true|no|false|auto]
    yesまたはtrueが指定された場合はCutterはエスケープシーケン スで色付けして出力します。noまたはfalseが指定された場合は 色付けしません。autoあるいは値が省略された時は、可能なら 色付けをします。 このオプションはコンソールUIを使用する場合だけ有効です。

--pdf-report=FILE
    FILEにPDF形式でテスト結果を出力します。

--xml-report=FILE
    FILEにXML形式でテスト結果を出力します。

--stream=[xml]
    ストリームバックエンドを指定します。ストリームバックエン ドはテスト結果を配信します。 現在はXMLストリームバックエンドがあります。

--stream-fd=FILE_DESCRIPTOR
    出力ファイルディスクリプタを指定します。XMLストリームバッ クエンドはFILE_DESCRIPTORに配信します。 このオプションはXMLストリームバックエンドを使用する場合だ け有効です。

--stream-directory=DIRECTORY
    出力ディレクトリを指定します。XMLストリームバックエンドは DIRECTORY以下にファイルを作成し、そのファイルに配信します。 このオプションはXMLストリームバックエンドを使用する場合だ け有効です。

-?, --help
    UIやテスト結果レポート機能に依存しないオプションを表示し ます。

--help-stream
    ストリーム関連のオプションを表示します。

--help-report
    レポート関連のオプションを表示します。

--help-ui
    UI関連のオプションを表示します。

--help-all
    すべてのオプションを表示します。

終了ステータス

すべてのテストがパスすると0で、そうでない場合は0以外になりま す。テスト結果の「省略」と「通知」は失敗として扱いません。

ファイル

/usr/local/share/doc/cutter/ja/
    リファレンスマニュアルやチュートリアルなどのCutterのドキュ メントがあります。

例

以下の例では、cutterはtest/ディレクトリ以下のテストを実行し、 テストの進行状況を詳細に表示します。
    % cutter -v v test/

以下の例では、テスト結果がlogs/ディレクトリ以下に保存されま す。
    % cutter --stream=xml --stream-directory=logs/ test/

関連項目

GLibのリファレンスマニュアル。