...
デフォルトの設定では、C++test は 1 つのファイルにつき 1 つのテスト スイートを生成します。設定を変更すれば、1 つの関数につき 1 つのテスト スイートを生成することもできます。 ( 「生成オプションのカスタマイズ」 を参照してください。)
C++test は「セーフ(安全な)スタブ定義」を自動生成して危険な関数を置き換えます。セーフ スタブ定義は、ほとんどのシステム I/O ルーチン (rmdir()、remove()、rename() など) について使用できます。また、C++test は見つからない関数定義と変数定義のためのスタブも自動生成できます (「スタブの自動生成とカスタマイズ」を参照)。ユーザー定義スタブは必要に応じて追加できます ( 「スタブの追加と変更」を参照)。
生成の手順
Anchor | ||||
---|---|---|---|---|
|
...
- テスト ケースを生成するテスト コンフィギュレーションを選択または作成します。
- C++test のビルトイン テスト コンフィギュレーションの詳細については 「ビルトイン テスト コンフィギュレーション 」を参照してください。
- ユーザー定義テスト コンフィギュレーションの作成方法については「テストコンフィギュレーションとルールの設定」を参照してください。C++test に固有のテスト コンフィギュレーション オプションについては 「Configuring Test Configurations 」 を参照してください。
- テストを実行します。
GUI からのテスト方法については「GUI からのテスト」を参照してください。
コマンドラインからのテスト方法については 「コマンドライン インターフェイスからのテスト 」を参照してください。ヒント - [テスト ケース エクスプローラー] ビューからのテスト生成
[テスト ケース エクスプローラー] ビューから直接テストを生成することができます (このビューを表示するには、[Parasoft] > [ビューの表示] > [テスト ケース エクスプローラー] をクリックします)。[テスト ケース エクスプローラー] ビューでプロジェクト ノードを選択して右クリックし、ショートカット メニューの からテスト生成用のテスト コンフィギュレーションを実行します。
テスト ケース エクスプローラーの詳細については「GUI の概要」を参照してください。
- 生成されたテスト ケースをレビューします。
- 詳細については 「自動生成テスト ケース」を参照してください。
- (オプション) 必要に応じてテスト生成の設定を調整します。
- 詳細については 「[生成] タブ - テスト ケースの生成方法を定義する」を参照してください。
生成オプションのカスタマイズ
Anchor | ||||
---|---|---|---|---|
|
...
[テスト対象関数ごとにテスト スイートを生成] を選択した場合、このテスト コンフィギュレーションを使って ATM サンプル プロジェクトをテストすると、次のようなテスト スイートが生成されます ( ATM プロジェクトは C++test のインストール ディレクトリの Examples/ATM ディレクトリにあります)。
[テスト対象ソース/ヘッダー ファイルごとにテスト スイートを生成] を選択した場合、このテスト コンフィギュレーションを使って ATM サンプル プロジェクトをテストすると、次のようなテスト スイートが生成されます。
定義済みオプションを選択した後、必要に応じてパターンをカスタマイズできます。たとえば、ソースと同じ場所にテストを生成するなどのカスタマイズです。次の変数を使用できます。
- ${test_ext} - C++test 固有のテスト スイート ファイルの拡張子 (.cpp)
- ${file_name} - ファイル名
- ${file_base_name} -拡張子なしのファイル名
- ${file_ext} - ファイルの拡張子
- ${file_loc} - ファイルの場所
- ${file_loc_rel} - ファイルの場所 (プロジェクト ルートからの相対の場所)
- ${file_uid} - ファイルの一意な識別子
- ${function_name} - テスト対象の関数名
- ${function_uid} - テスト対象関数の一意な識別子 (関数のシグニチャ/マングル名からハッシュ コード計算された識別子)
- ${src_file_name} - コンテキスト (ソース) ファイルの名前 (「コンテキスト ファイル」とは、テスト対象関数が定義されているコンパイル単位を記述したソース ファイルのこと)
- ${src_file_base_name} - 拡張子なしのコンテキスト (ソース) ファイルの名前
- ${src_file_ext} - コンテキスト (ソース) ファイルの拡張子
- ${src_file_loc} - コンテキスト (ソース) ファイルの場所
- ${src_file_loc_rel} -コンテキスト (ソース) ファイルの場所 (プロジェクト ルートからの相対パス)
- ${src_file_uid} - コンテキスト (ソース) ファイルの一意な識別子 (ソース ファイルの場所からハッシュ コード計算された識別子)
...
このセクションでは、[テスト スイート出力ファイルとレイアウト] オプションの設定方法について説明します。このオプションは、テスト コンフィギュレーションの [生成] > [テスト スイート] タブにあります。各オプションがプロジェクトで実際にどのように解釈されるかをわかりやすくするために、次のサンプル プロジェクトを使って、各オプションの影響について説明します。
Code Block |
---|
MyProject
headers
MyClass.h // contains foo() definition
sources
MyClass.cpp // contains bar() and goo() definitions |
1 つの関数につき 1 つのテスト スイートを生成し、別のディレクトリにテストを置く
...
Code Block |
---|
MyProject headers MyClass.h sources MyClass.cpp tests headers MyClass.h TestSuite_foo.cpp // contains tests for foo() sources MyClass.cpp TestSuite_bar.cpp // contains tests for bar() TestSuite_goo.cpp // contains tests for goo() |
Use ${project_loc}/tests/${file_loc_rel}/${file_name}/
TestSuite_${function_name}.${test_ext}
レイアウトの例:
Code Block |
---|
MyProject Header Files MyClass.h Source Files MyClass.cpp tests Header Files MyClass.h TestSuite_foo.cpp // contains tests for foo() Source Files MyClass.cpp TestSuite_bar.cpp // contains tests for bar() TestSuite_goo.cpp // contains tests for goo() |
...