このセクションでは、プロジェクト レベルおよびファイル レベルのオプション設定をカスタマイズする方法について説明します。
このセクションの内容
C/C++test でコードを適切にテストするには、ビルド設定を正しく指定する必要があります。テスト環境に合わせて詳細設定 (インストゥルメントのオプション) も変更できます。
オプション設定を参照し変更するには、次の操作を行います。
C/C++ プロジェクト ツリー (「プロジェクト ツリー」と呼ばれます) でオプション設定を変更するプロジェクトまたはファイルのノードを右クリックし、ショート カット メニューの[プロパティー] をクリックします。[プロパティー] ダイアログが表示されます。
オプションのソース: オプションの設定方法を指定します。 すべてのオプションを手動で指定するこ とも、ビルド システムのオプション、ビルド データ ファイルのオプション、Green Hills プロジェクトのオプション、Eclipseマネージド Make プロジェクト設定をベースにすることもできます。
ビルド データ ファイルのオプションを使用 既存のビルド システムを使った C++test プロジェクトで説明されているとおり、cpptestscan ユーティリティを使ってビルド データ ファイルを作成済みの場合でビルド データ ファイルの再生成と更新を手動で管理したい場合、このオプションを推奨します。
Green Hills Software (GHS) プロジェクトのオプションを使用 Green Hills IDE で開発したプロジェクトの場合、このオプションを推奨します。
マネージド Make C/C++ プロジェクトのオプションを使用 Eclipse で開発した「マネージド Make プロジェクト」の場合、このオプションを推奨します。
すべてのオプションを手動で指定 上記以外のプロジェクトの場合、このオプションを推奨します。
[オプション ソース] で選択した項目によって、表示されるオプションは異なります。
どちらのオプション ソースが適しているかは、「ビルド システムの複雑さ」と「プロジェクトの完全なリビルドに必要な時間」によって決まります。 [ビルド システムのオプションを使用] がオンの場合:
[ビルド データ ファイルのオプションを使用] がオンの場合:
|
ビルド データ ファイルを手動で管理する方法を選択した場合、ビルド データ ファイルを作成するためのメカニズムをビルド プロセスに統合することを強く推奨します。そうすれば、開発チームのメンバーがこのビルド データ ファイルを使用できるだけでなく、通常のビルド作業の最中にビルド データ ファイルをシームレスに生成または更新するのに役立ちます。 |
C++test 7.1 から、[Makefile ベースのプロジェクトを使用] オプションは [ビルド システムのオプションを使用] オプションに換わりました。 [Makefile ベースのプロジェクトを使用] オプションと同じ機能を実現するには、次の設定を使用してください。
|
複数の C/C++test プロジェクト構成を使って、さまざまな構成のテストを管理することができます。たとえば、ホスト コンパイラ、クロス コンパイラ、デバッグ モードでのテスト、リリース モードでのテストなどに対してプロジェクトを構成できます。
また、現在のアクティブなプロパティをファイルにエクスポートしたり、以前に保存したプロパティをファイルからインポートすることもできます。
プロパティをエクスポートすると、cpptestcli -settings
パラメーターで引数として使用できるファイルが作成されます。このファイルを利用して、コマンドラインからテストするときに別のプロジェクト構成に簡単に切り替えることができます。
次のオプションを設定します。
${resource_loc}
は、特定のプロジェクト リソースへの絶対パスです。たとえば、${resource_loc:/MyProject/linked_src_dir/source.cpp}
は C:\src\source.cpp
に解決されます。指定のビルド データ ファイル中でオプションが変更されると、C/C++test は自動的にオプションを再スキャンしてプロジェクトを適切に変更します。たとえば外部コンフィギュレーション ファイルが変わったなどの理由でオプションを強制的にすぐに更新したい場合は、[キャッシュをリセット] ボタンをクリックします。
次のオプションを設定します。
${CPPTEST_SCAN}
変数で表されます。次は GNU のビルド コマンドラインの例です。make -i -B objects CXX=${CPPTEST_SCAN} CC=${CPPTEST_SCAN}
このコマンドラインは、 -B
フラグ (すべてのターゲットを無条件に make するフラ グ) および -i
(エラーを無視するフラグ) を使って make ターゲット objects
を make します。make 変数 CXX
および CC
は ${CPPTEST_SCAN}
で代替されます。このコマンドラインを使用すると、objects
ターゲットをビルドするために通常コ ンパイルされるすべてのソース ファイルからオプションを抽出できます。
CXX=\${CPPTEST_SCAN}
ビルド コマンドラインは、 -B スイッチ オプション (無条件にすべてのターゲットを make するオプション) を含むように設定済みです。このオプションをサポートするのは GNU Make 3.80+ だけです。 以前の make を使用している場合、プロジェクトを作成する前にビルドをクリーンしてください。-k スイッチを保持してください。 -B スイッチ オプションをサポートしない make を使用している場合、さらにコマンドラインを 変更する必要があります。プロジェクト プロパティで使用されるデフォルトのビルド コマンドラ インにはターゲットがありません。解析対象コードをビルドするために使用するターゲットの指 定を推奨します。 例:
また、通常のビルド ターゲットの前に clean ステップを追加します。 例:
このコマンドは、まず clean ターゲットを make し、それから |
3.[ビルド作業ディレクトリ] フィールドで、ビルド プロセスを実行するディレクトリを指定します。
${project_loc}
は Eclipse プロジェクトの場所 (.project
ファイルがある場所) への絶対パスです。リンクされたソース フォルダー (実際にはプロジェクトの場所に存在しないソース ファイル) がプロジェクト中にある場合、この変数を使用しないでください。詳細については、下の囲みを参照してください。
${resource_loc}
は、特定のプロジェクト リソースへの絶対パスです。たとえば、${resource_loc:/MyProject/linked_src_dir/source.cpp}
は C:\src\source.cpp
に解決されます。
リンクされたソース フォルダーを使って Makefile ベースのプロジェクトを設定する場合、 しかし、自分のマシンのソース ディレクトリへの絶対パスを指定すると、チーム メンバー間での移植性が失われる可能性があります。絶対パスを指定せずにプロジェクトを正しく設定するには、 たとえば、ATM_makefile プロジェクトで作業していて、このプロジェクトにソースの場所をポイントするリンクされた ATM フォルダーがあるものとします。実際のプロジェクトは別の物理的な場所にあります (別の場所にある理由は、プロジェクトのセットアップ ファイルと実際のソースとを分離するためです)。ビルド実行ディレクトリおよび関連する参照ファイルを C/C++test が発見するように設定するには、プロジェクト設定で |
4.[従属ファイル] フィールドで、変更をチェックする Makefile を指定します。指定したファイルが変更された場合、オプションは自動的に更新されます。
絶対パスを使用すると、互換性のないプロジェクトになることがあります。次の C/C++test 変数を使ってパスを指定することを推奨します。
${project_loc}
は Eclipseプロジェクトの場所 (.project
ファイルがある場所) への絶対パスです。リンクされたソース フォルダー (実際にはプロジェクトの場所に存在しないソース ファイル) がプロジェクト中にある場合、この変数を使用しないでください。詳細については、下の囲みを参照してください。
${resource_loc}
は、特定のプロジェクト リソースへの絶対パスです。たとえば、${resource_loc:/MyProject/linked_src_dir/source.cpp}
は C:\src\source.cpp
に解決されます。
5.[コンパイラ設定] で、C および C++ ソースのためのコンパイラの実行モジュール、リンカー、コンパイラファミリーを選択します。使用しているコンパイラがリスト中にない場合、カスタム コンパイラ定義を追加します (詳細については「カスタム コンパイラを使用するテストの設定 」を参照)。
6.[オプション] で、Makefile でまだ指定していない、テスト固有または C/C++test 固有のコンパイラオプションとリンカーオプションを指定します。詳細については「コンパイラとリンカーのオプション設定」を参照してください。
[従属ファイル] フィールドで指定したファイルが変更されると、C/C++test は自動的にオプションを再スキャンしてプロジェクトを適切に変更します。 たとえば外部コンフィギュレーション ファイルが変わったなどの理由でオプションを強制的にすぐに更新したい場合は、[キャッシュをリセット] ボタンをクリックします。
次のオプションを設定します。
*.gpj
) プロジェクト ファイルの場所を入力します。${project_loc}
は、Eclipse プロジェクトがある場所 (.project
ファイル がある場所 ) への絶対パスです。リンクされたソース フォルダー (プロジェクトとは異なる場所にあるソース ファイル) がプロジェクトにある場合、この変数を使ってはいけません。${resource_loc}
は、特定のプロジェクト リソースへの絶対パスです。たとえば、${resource_loc:/MyProject/linked_src_dir/source.cpp}
は C:\src\source.cpp
に解決されます。GHS プロジェクト ファイルのオプションが変わると、C++test は自動的にオプションを再スキャンし、オプションに従ってプロジェクトを変更します。たとえば外部コンフィギュレーション ファイルが変わったなどの理由でオプションを強制的にすぐに更新したい場合は、[キャッシュをリセット] ボタンをクリックします。
C/C++test はどのように GHS オプション ソースを使用するのか
C/C++test は次の種類の GPJ プロジェクトをサポートします。つまり C/C++test は、これらのプロ ジェクト タイプで指定されたプロジェクト ノードを、ソース オプションとビルド オプションをスキャンするプロジェクトとして扱います。
C/C++test は GPJ プロジェクトを 2 つのグループに分けています。
ルート プロジェクトとは、オプションのスキャンの開始地点として選択された最上位レベルのプロジェクト ファイルのことです。
複雑な構造を持つプロジェクトの場合:
テスト可能なソースは C 言語および C++ 言語のソースです。
GPJ プロジェクトから取得されるビルド オプションには次の 2 種類があります。
C/C++test では、特定のソース ファイルのビルド オプション (コンパイル オプションとビルド プロ パティ) には、ソース ノード自体のすべてのオプションに加えて、このソース ファイルにつながるすべての親プロジェクト ノードから取得されたすべてのオプションが含まれます。さらに、特定のテスト可能プロジェクトのリンク オプションには、テスト可能プロジェクト ノード自体のすべてのオプションに加えて、このプロジェクトにつながるすべての親プロジェクト ノードから取得されたすべてのオプションが含まれます。
認識されるビルド プロパティは次のとおりです。これらのビルド プロパティは MULTI Build Options Editor から指定されている可能性があります。
以前C/のバージョンの C/C++test で利用できた GHS の下位互換性のために、現行バージョンの C/C++test には互換モードが用意されています。互換モードでは、ルート プロジェクトがそのプロジェクト タイプに関わらず (そのプロジェクト タイプがサポートされている限り)、常にテスト可能として扱われます。ただし、"テスト可能ではない" プロジェクトから実行用モジュールをビルドすることは不可能な場合があります。よくある原因は次の 2 つです。
互換モードは主に、完全なプロジェクトの構成で発見されるすべてのテスト可能ソースに対する静的解析で使用されます。
次のオプションを設定します。
次のオプションを設定します。
${project_loc}
は、Eclipse プロジェクトがある場所 (.project
ファイル がある場所 ) への絶対パスです。リンクされたソース フォルダー (プロジェクトとは異なる場所にあるソース ファイル) がプロジェクトにある場合、この変数を使ってはいけません。${resource_loc}
は、特定のプロジェクト リソースへの絶対パスです。たとえば、${resource_loc:/MyProject/linked_src_dir/source.cpp}
は C:\src\source.cpp
に解決されます。テスト ケースの実行中に、選択したソース ファイルをインストゥルメントするかどうかを指定します。
複数のファイルにこの設定を適用するには、プロジェクトの中からファイルを選択して右クリックし、[Parasoft] > [C/C++test] > [実行の設定] を選択します。選択したすべてのファイルに現在の設定が適用される点に注意してください。
一時的なデータ ファイルを C/C++test が保持する場所を指定します。一時的なデータ/ファイルと は、インストゥルメントされたソース、コンパイルされたオブジェクト、リンクされたテスト用実行モジュール、自動生成ヘッダー ファイルなどです。 この設定は {cpptest:testware_loc}
を制御します。
C/C++test はこれらのファイルを必要に応じて自動的に再生成できるため、これらのファイルをチーム メンバー間で共有する必要はありません。したがって、これらのファイルをプロジェクトと共に保存したりソース管理システムに追加したりするべきではありません。
[消去] ボタンをクリックすると一時データを削除できます。ただし、テスト実行とテスト実行の間に一時データを削除しないことを推奨します。一時データを保持しておくと、パフォーマンスを大幅に向上させることができます。
なお、最適なパフォーマンスを得るには、ローカル ハード ドライブを使用してください。
詳細オプションでは、さまざまな低水準オプションとデバッグ オプションを指定できます。利用可能なオプションについては「インストゥルメントの詳細オプション」を参照してください。
ソース ファイルをプロセスするときにマルチバイト エンコーディングを使用するかどうかを指定します。デフォルトは [自動 (オン)] であり、現行システムのエンコーディングに基づいて自動的にマルチバイト文字のサポートがアクティブになります。マルチバイト文字のサポートを手動で設定するには、[オン] または [オフ] を選択します。
なお、マルチバイト文字のサポートを有効にしてコードを解析すると、 パフォーマンスに影響する場合があるので注意してください。
テスト対象から除外するプロジェクト ファイルを指定できます。詳細については「特定のリソースのテスト」を参照してください。