[Generate Unit Tests] テスト コンフィギュレーションを作成する
- [Parasoft] メニューの [テスト コンフィギュレーション] をクリックします。
- [ビルトイン] > [Unit Testing] > [Generate Unit Tests] テスト コンフィギュレーションを右クリックします。
- ショートカット メニューの [複製] をクリックします。複製された[Generate Unit Tests] テスト コンフィギュレーションが [ユーザー定義] カテゴリの下に表示されます。
- ユーザー定義の [Generate Unit Tests] テスト コンフィギュレーションで [生成] タブをクリックします。
- [全般] タブで次のデフォルト設定がオンになっていることを確認します。
- [テスト スイートが存在しない場合にテスト コードを生成する]
- [テスト対象のファイルが更新された場合にテスト ケースを生成する]
- [テスト対象のファイルが更新されていない場合にテスト ケースを生成する]
- [public/グローバル関数]
- [1 つの関数につき生成するテスト ケースの最大数] を 2 に設定します。この設定のデフォルトは 10 です。しかし、最初は 1 つの関数につき生成するテスト ケースを少なくするべきです。
理由は、C/C++test の単体テストに慣れるまで、レビューが必要なテスト ケースの数を減らすためです。
6.[生成] > [テスト スイート] タブで、以下のデフォルト設定が選択されているか有効化されていることを確認します。
- [テスト スイート出力ファイルとレイアウト] 単体テストを tests/autogenerated ディレクトリに生成します。
${project_loc}/tests/autogenerated/${file_loc_rel}/TestSuite_${file_base_name}_${file_ext}.${test_ext}
- [テスト ケースがない関数に対してテスト ケースを追加する]
- [プロジェクト絶対パスを使用する]
- [テスト スイート出力ファイルとレイアウト] 単体テストを tests/autogenerated ディレクトリに生成します。
7.[生成] > [テスト ケース] タブで、以下のデフォルト設定が選択されているか有効化されていることを確認します。
- [テストの事前条件としてグローバル変数を初期化する]
- [入力値に経験値を使用する]
- [public 以外のメンバー変数を事前条件/事後条件で使用する]
- [ポインターに null 値を使用する]
- [ファクトリ関数を使用する]
- [スタックにオブジェクトを生成する]
- [テスト ケースの結果をレポートするためのコードを挿入]
- [プリミティブ型のポインター割り当ての最初の要素を表示する]
8.テスト コンフィギュレーションの名前を [Generate Unit Tests - 2 tests] に変更します。
9.[適用] ボタンをクリックして変更を保存し、[閉じる] ボタンをクリックします。
単体テストの生成は、ソース ファイルに対してだけ適用できます。ヘッダー ファイルについては、テスト コンフィギュレーションの実行スコープ内にあるソース ファイルから参照されている場合にだけ、テスト ケースが作成されます。ただし、参照されているヘッダー ファイルがテスト ケース生成スコープ外にある場合、ヘッダー ファイルに対してテスト ケースは作成されません。
テスト生成テスト コンフィギュレーションを実行してレビューする
- プロジェクト ツリーで ATM.cxx をテスト スコープとして選択します。
- [Parasoft] メニューの [テストの実行] > [ユーザー定義] > [Generate Unit Tests - 2 tests] をクリックして ATM.cxx のテスト スイートを生成します。
- [テスト進捗] タブでテスト コンフィギュレーションの実行の概要を確認します (実行したGenerate Unit Tests - 2 がタブ名として表示されています)。
- [スコープ] および [生成] セクションを展開して追加の概要情報を参照できます。[テスト進捗] タブをドラッグして GUI の右側に位置づけることを推奨します。
a. プロジェクト ツリーで ATM > tests > autogenerated ディレクトリを展開します。
b. TestSuite_ATM_cxx.cpp をダブルクリックして、関連するテスト スイートのソース ファイルをエディター ウィンドウで開きます。テスト スイートの詳細については「テスト スイートの拡張と変更」を参照してください。