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

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

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

  2. テスト スイート ウィザードを開きます。次の操作を行います。  
    1. テスト ディレクトリを右クリックします。  
    2. [Parasoft] > [ウィザード] > [新規テスト スイートの作成] をクリックします。ウィザードが表示されます。

    3. [Parasoft] > [C++test] > [テスト スイート] を選択し、[次へ] ボタンをクリックします。  
  3. 次のテスト スイート パラメーターを設定します。  
    • テスト スイートの名前 テスト スイートの名前  
    • テスト スイートの場所 テスト スイートの場所
    • テスト スイート ファイル テスト スイート ファイルへのパス。
    • テスト スイートの言語 テスト スイートの実装言語。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