新規テスト スイートの追加

ユーザー定義テスト ケースを新規に作成するには、次の操作を行います。

  1. テスト用のディレクトリを作成します。
    • プロジェクト ツリーから見える場所であれば、テスト ディレクトリはどこでも構いません。デフォルトでは、テストはプロジェクトの tests ディレクトリの下に保存されます。この保存場所はテスト コンフィギュレーションで変更できます。 [実行] > [全般] タブの [テスト スイート ファイルの場所のパターン] オプションで設定します。

       2.テスト スイート ウィザードを開きます。次の操作を行います。

    1. テスト ディレクトリを選択します。

     3.このビューの使い方については 『Parasoft Test ユーザーズ ガイド』の「はじめに」>「Parasoft Test の GUI」を参照してください。次のテスト スイート パラメーターを設定します。

    • テスト スイートの名前: テスト スイートの名前
    • テスト スイートの場所: テスト スイートの場所
    • テスト スイート ファイル: テスト スイート ファイルへのパス
    • テスト スイートの言語: テスト スイートの実装言語。C または C++ を選択します。
    • テスト対象ファイル: 指定のテスト対象ソース ファイルにテスト スイート コンテキストをセットします。指定したファイルは CPPTEST_CONTEXT マクロとして設定され、このマクロは、テスト スイート ファイルを指定のソース ファイルと関連付けます。
      • ファイルを選択してウィザードを開始した場合、そのファイル名が [テスト対象ファイル] に表示されます。
      • プロジェクトを選択してウィザードを開始した場合、コンテキストは指定されません。また、テスト スイートはプロジェクト スコープになります。つまり、プロジェクトのすべてのテストが実行される場合、またはテスト ファイルとしてテスト スイートが選択されている場合にだけ、テスト スイートは実行されます。テスト スイートをテスト ファイルとして選択した場合 (テスト スイートがコンテキストを持たない場合)、C++test はテスト スイートがプロジェクト コンテキストであると推測し、プロジェクト中のすべてのファイルをリンクのために準備します。
    • テスト スイート モード: テスト スイートを「スタンドアロン」にするか「インクルード」にするかを指定します。C++test はどちらのタイプのテスト スイートもインストゥルメントします。private/protected クラス メンバーにアクセスできます。
      • インクルード 生成されたテスト ハーネス ソース ファイルの 1 つに、テスト スイートが物理的に含まれます。インクルード テスト スイートは、インストゥルメントされたコードと結合されて 1 つのオブジェクト ファイルにコンパイルされます。すべての自動生成テスト スイートは、インクルード テスト スイートです。ヘッダー ファイルを含めることもできます。マクロ定義はオリジナル ヘッダーで定義できます。ただし、オリジナルのテスト対象ソース ファイルで見られない型がない限り、インクルード テスト スイートはヘッダーをインクルードする必要はありません。これは通常、テスト ファクトリをインクルードするためなどの場合に、生成されたテストを変更するときにだけ必要です。
      • スタンドアロンテスト スイートは個別にコンパイルされてテスト用実行モジュールにリンクされます。ヘッダーは、テスト スイートに直接インクルードしなければなりません。インクルードされたヘッダーのカバレッジ情報を収集できます。

     4.(オプション) テスト ケースの名前を指定する場合、[次へ] ボタンをクリックしてテスト ケース名を入力します。
     5.[終了] ボタンをクリックします。

既存のテスト スイートにテスト ケースを追加する

既存のテスト スイートに新規テスト ケースを追加するには、次の操作を行います。

  1. プロジェクト ツリーでテスト スイート ファイルを右クリックするかエディターでテスト スイート ファイルを開き、ショートカット メニューの [Parasoft] > [C++test] > [テスト スイート] > [テスト ケース テンプレートの追加] をクリックします。 または、 テスト ケース エクスプローラーでテスト スイート ファイルを右クリックし、ショートカット メニューの [新規追加] > [テスト ケース テンプレート] をクリックします。

  2. テスト ケースの名前を入力します。  新しいテスト ケースが追加されてテスト スイートの内容が変更されます。
  3. エディターでテスト スイートのソース ファイルを開き、テスト ケースの定義を入力します。必要に応じて他の変更も加えます。たとえば:

    • #include ディレクティブおよびヘッダー ファイルのマクロ定義を使用します。
    • #include ディレクティブを使って、テスト用実行モジュールをビルドするときに他のファイルをインクルードします。
    • CPPTEST_CONTEXT マクロを使って、テスト スイートのコンテキストを変更します。このマクロは、テスト スイート ファイルを指定のソース ファイルと関連付けます。1 つのソース ファイルだけを指定できます。コンテキストの指定がない場合、プロジェクトが実行されるたびにテスト スイートが実行されます。
      • テストの実行前にプロジェクト ツリーでソース ファイルまたはディレクトリを選択した場合、C++test はテスト コンフィギュレーションの [テスト スイート ファイルの場所のパターン] オプションで指定されたすべてのテスト ディレクトリをスキャンします。指定のコンテキストに一致するすべてのテスト スイートが実行されます。
      • プロジェクト全体を選択した場合、テスト パス上のすべてのテスト スイートが実行されます。
      • 1 つのテスト スイートまたは 1 つのテストを選択した場合、CPPTEST_CONTEXT マクロは、このテスト スイートが関連するソース ファイルをバックトレースするために使用されます。選択したテスト スイートだけが実行されます。
      • 相対パスを使用する場合、パスは "./" または "../" で開始しなければなりません。

     4.変更したファイルを保存します。

テスト駆動開発 (TDD) のヒント

生成されたテンプレート中のテスト ケースは、失敗するように設定されています。 ユーザーは、実装のソースを作成し、テストに満足した段階で失敗マクロを削除できます。

新しいプロセスを生む cout 文

他のプロセスを生む cout 文がある単体テストがある場合、改行文字ではなく endl を使って cout 文を終了してください。そうすると、出力が直ちにコンソールに表示されます。

たとえば

  • cout << "xyz\n";

ではなく

  • cout << "xyz" << endl; を使用します。
  • No labels