このセクションの内容
はじめに
既存のビルド システムを使用して自動的にプロジェクトを作成するには、コードのビルド プロセスに関する情報が必要です。C/C++test に必要な情報を提供するには、通常は GNU make、CMake、QMake といったビルド ツールを使用してビルドを実行するように、cpptestscan
または cpptesttrace
ユーティリティを実行して、C++test プロジェクトを作成することができます。ユーティリティは、C/C++test が必要とする情報を含むビルド データ ファイルを出力します (詳細は「ビルド データ ファイルについて (.bdf)」を参照)。別の方法として、ユーティリティが収集した情報を使って、プロジェクトを ビルドして手動で構成することもできます。
CMake を使用している場合、CMake ビルド ファイルで直接 C/C++test プロジェクトを定義することもできます。すると、CMake でのビルド時に自動的に C/C++test プロジェクトを生成できます。cpptestscan
または cpptesttrace
を実行する必要はありません。詳細は「CMake ビルドへの C/C++test の統合」を参照してください。
C/C++test のプロジェクト作成ウィザードを使用して CMake JSON 定義ファイルをインポートすることもできます。このプロジェクト作成方法については「GUI ウィザードで BDF ファイルをインポートしてプロジェクトを作成する」を参照してください。
ビルド データ ファイル (.bdf) について
作業ディレクトリ、コンパイルのコマンドライン オプション、オリジナル ビルドのリンク プロセスといったビルド情報は、「ビルド データ ファイル」というファイルに保存されます。以下のサンプルはビルド データ ファイルからの抜粋です。
------- cpptestscan v. 9.4.x.x ------- working_dir=/home/place/project/hypnos/pscom project_name=pscom arg=g++ arg=-c arg=src/io/Path.cc arg=-Iinclude arg=-I. arg=-o arg=/home/place/project/hypnos/product/pscom/shared/io/Path.o
ビルド データ ファイルは、プロジェクトのソース ファイル、コンパイラの実行ファイル、コンパイラ オプション、リンカーの実行ファイル、およびプロジェクトをビルドするために使用されるオプションについての情報のソースとして使用できます。ビルド データ ファイルを使ってプロジェクトを作成するには、以下の 3 種類の方法があります。
- プロジェクトのオプション ソースとして [ビルド データ ファイルのオプションを使用] を手動で設定し、適切なビルド データ ファイルを選択する (「GUI からの C++test プロジェクトの作成」を参照)。
- GUI を使ってプロジェクトを自動的にインポートする(「GUI ウィザードで BDF ファイルをインポートしてプロジェクトを作成する」を参照)。
コマンドラインを使ってプロジェクトを自動的にインポートする(「コマンドラインからインポートする」を参照)。
注意
以下の条件に当てはまる場合、必要な環境変数もビルド データ ファイルに格納できます。
- コンパイラとリンカーが適切に動作するよう、必要な環境変数をビルド システムがセット アップする。
- C++test を実行するときに、その環境ではこれらの変数を使用できない。
以下の
--cpptestscanEnvInOutput
オプションの説明を参照してください。
cpptestscan
または cpptesttrace
を使ってビルド データ ファイルを作成する
cpptestscan
および cpptesttrace
の実行ファイルは C++test インストール ディレクトリの下にあります。これらのユーティリティは、既存のコードのビルド プロセスから情報を収集し、その情報を使ってビルド データ ファイルを生成し、各実行についての情報をファイルに追加します。
cpptestscan
ユーティリティは、標準ビルド中にコンパイラあるいはリンカーのラッパーとして使用されます。既存のコードで cpptestscan
を使用するには、コンパイラ/リンカーの実行ファイルの接頭辞として cpptestscan
を指定してコードをビルドします。これは次の 2 つの方法で実行できます。
- コンパイラ/リンカーの実行ファイルのラッパーとして
cpptestscan
を呼び出すようにビルド コマンドを変更する。 - コマンドラインでコンパイラ変数を上書きしたくない場合 (または上書きできない場合)、実際の Makefile またはビルド スクリプト中に
cpptestscan
を埋め込む。
既存のコードで cpptesttrace
を使用するには、コンパイラ/ リンカーの実行ファイルの接頭辞として cpptesttrace
を指定してコードをビルドします。cpptesttrace
は、ビルド中に実行されたコンパイラとリンカーのプロセスをトレースし、トレースした内容をビルド データ ファイルに格納しま す。
どちらの場合も、PATH 環境変数に C++test インストール ディレクトリを追加するか、 cpptestscan または cpptesttrace ユーティリティへのフル パスを指定する必要があります。
cpptestscan
と cpptesttrace
で使用できるオプションは、以下の表のとおりです。オプションは、cpptestscan
コマンドに直接指定するか、環境変数を介して指定できます。コマンドラインの接頭辞を変えることで、ほとんどのオプションが cpptestscan
または cpptesttrace
に適用できます。
基本的な cpptestscan
の使用法:
- Windows:
cpptestscan.exe [options] [compile/link command]
- Linux:
cpptestscan [options] [compile/link command]
基本的な cpptesttrace
の使用法:
- Windows:
cpptesttrace.exe [options] [build command]
- Linux:
cpptesttrace [options] [build command]
オプション | 環境変数 | 説明 | デフォルト |
---|---|---|---|
-- cpptestscanOutputFile= <OUTPUT_FILE> -- cpptesttraceOutputFile= <OUTPUT_FILE> | CPPTEST_SCAN_OUTPUT_FILE) | ビルド情報を追加するファイルを定義します。 | cpptestscan.bdf |
| CPPTEST_SCAN_PROJECT_NAME | C++test プロジェクトの名前を定義します。 | 現在の作業ディレクトリ名 |
| CPPTEST_SCAN_RUN_ORIG_CMD | yes の場合、オリジナル コマンドラインが実行されます。 | yes |
| CPPTEST_SCAN_QUOTE_CMD_LINE_MODE | C++test がコマンドラインの実行を準備するときに、どのようにパラメーターを引用符で囲むかを指定します。
cpptestscanQuoteCm dLineMode はLinux ではサポートされません。 | all |
| CPPTEST_SCAN_CMD_LINE_PREFIX | [empty] ではなく、かつオリジナル実行ファイルの実行がオンの場合、指定のコマンドがオリジナル コマンドラインの前に付けられます。 | [empty] |
| CPPTEST_SCAN_ENV_IN_OUTPUT | yes の場合、選択した環境変数とコマンドライン パラメーターが出力ファイルにダンプされます。さらに詳しく設定するには --cpptestscanEnvFile または--cpptestscanEnvars オプションを使用します。 | no |
| CPPTEST_SCAN_ENV_FILE | 有効な場合、指定したファイルにはすべてのビルド コマンドに共通の環境変数が保持されます。メインの出力ファイルは差分だけを保持します。メインの出力ファイルのサイズを縮小するには、このオプションを使用します。– cpptestscanEnvInOutを有効にしてこのオプションを使用してください。 | [empty] |
| CPPTEST_SCAN_ENVARS | ダンプする環境変数名を指定するか、'*' を選択してすべての環境変数を指定します。 --cpptestscanEnvInOutput を有効にしてこのオプションを 使用してください。 | * |
| CPPTEST_SCAN_USE_VARIABLE | スキャンされたビルド情報中の各 "VALUE" 文字列を "${VAR_NAME}" 変数の使用で置き換えます。 | [empty] |
-- cpptesttraceTraceComm and | CPPTEST_SCAN_TRACE_COMMAND | ビルド プロセス情報を収集するときにトレースするコマンド名を定義します。コマンド名は正規表現で指定します。コマンド名はビルド プロセスで使用されるオリジナルのコンパイラ/リ ンカー コマンドと一致しなければなりません。 |
例: cpptestscan を使用するように GNU make ビルド コマンドを変更する
make ベースのビルドで、コンパイラ変数が CXX であり、オリジナル コンパイラが g++ であるものとします。
make -f </path/to/makefile> <make target> [user-specific options] CXX="cpptestscan --cpptestscanOutputFile=/path/to/name.bdf --cpptestscanProjectName=<projectname> g++"
このコマンドは、通常と同じようにコードをビルドするだけでなく、指定されたディレクトリにビルド データ ファイル (name.bdf) を生成します。
注意
複数のディレクトリでビルドを実行する場合:
- 出力ファイルを指定しない場合、ソース ビルド ディレクトリごとに独自の .bdf ファイル が存在するべきです。この方法はソース ディレクトリごとに 1 個のプロジェクトを作成するのに適しています。
- ソース ツリーごとにプロジェクトを用意したい場合、上記の例にあるように、1 個の .bdf ファイルを指定する必要があります。
例: cpptesttrace を使用するように GNU make ビルド コマンドを変更する
通常の make ベースのビルドでは次のコマンドを使用するものとします。
make clean all
次のコマンドラインを使用できます。
cpptesttrace --cpptesttraceOutputFile=/path/to/name.bdf --cpptesttraceProjectName=<projectname> make clean all
このコマンドは、通常と同じようにコードをビルドするだけでなく、指定されたディレクトリにビルド データ ファイル (name.bdf) を生成します。
注意
コンパイラあるいはリンカーのファイル名がデフォルトの cpptesttrace
コマンドのパターンに一致しない場合、下記で説明する --cpptesttraceTraceCommand
オプションを使ってカスタマイズする必要があります。'cpptesttrace --cpptesttraceHelp' コマンドを実行すると、デフォルトの cpptestscan コマンドのトレース パターンを見ることができます。
例: cpptestscan を使用するように GNU Makefile を変更する
Makefile でコンパイラ実行ファイルの変数として CXX を使用し、通常は CXX=g++ として定義している場合、変数を再定義することができます。
ifeq ($(BUILD_MODE), PARASOFT_CPPTEST)
CXX="/usr/local/parasoft/cpptestscan --cpptestscanOutputFile=<selected_location>/MyProject.bdf --cpptestscanProjectName=MyProject g++"
else
CXX=g++
endif
次に、通常と同じようにビルドを実行し、make に BUILD_MODE 変数を追加します。
make BUILD_MODE=PARASOFT_CPPTEST
コードがビルドされ、ビルド データ ファイル (MyProject.bdf) が作成されます。生成されたビルドデータ ファイルを使って、GUI またはコマンドラインからプロジェクトを作成することができます。
注意
cpptestscan
および cpptesttrace
ユーティリティは、複数のコンパイラ実行ファイルを同時に実行できる並列ビルド システムで使用できます。マルチ コア マシンでビルド データ ファイルを用意する場合、たとえば、-j <number_of_parallel_jobs>
パラメーターを GNU make コマンドに渡すことで、より早くプロジェクトをビルドしてビルド データ ファイルを用意できます。
次の例は、cpptestscan
または cpptesttrace
を使用して CMake プロジェクト用の .bdf ファイルを作成する方法を示しています。複雑なシナリオおよび単体テストについては、CMake 用 C/C++test 拡張機能を使用して CMake に C/C++test を統合することを検討してください。「CMake ビルドへの C/C++test の統合」を参照してください。
例: CMake ビルドで cpptesttrace を使用する
CMake ベースのビルドがあり、cpptesttrace を使ってビルド データ ファイルを生成できるものとします。
CMake を使って Makefile を生成するために、オリジナルの CMake コマンドを実行します。例:
cmake -G "Unix Makefiles" ../project_root
cpptestscan
の環境変数を設定します。出力ファイルのパスには必ず絶対パスを使用します。export CPPTEST_SCAN_PROJECT_NAME=my_project export CPPTEST_SCAN_OUTPUT_FILE=$PROJ_ROOT/cpptestscan.bdf
- PATH 変数で
cpptesttrace
実行ファイルが設定されていることを確認します。 - プロジェクトのビルドを通常と同じにように実行します。ただし、ラッパーとして
cpptesttrace
を使用します。たとえば、通常のビルド コマンドが make clean all である場合、cpptesttrace を使ったコマンドはcpptesttrace make clean all
となります。
CPPTEST_SCAN_OUTPUT_FILE 変数で定義された場所にビルド データ ファイルが生成されます。この変数を設定していない場合、ビルド データ ファイルは Makefile の場所に生成されます。
例: CMake ビルドで cpptestscan を使用する
すべてのスクリプトとコマンドは bash ベースです。別のシェルについては必要に応じて適合させてください。
CMake ベースのビルドがあるものとします。以下の操作を行って、cpptestscan を使ってビルド データ ファイルを生成します。
- コンパイラの接頭辞として cpptestscan を使用し、CMake を使って Makefile を再生成します。PATH 変数で cpptestscan の実行ファイルが設定されていることを確認してください。
オリジナルの CMake コマンドが
cmake -G “Unix Makefiles” ../project_root
である場合、既存の CMake のキャッシュを削除して cmake を実行し、コンパイラ変数を上書きします。次の例は、C コンパイラとして gcc を使用し、 C++ コンパイラとして g++ を使用するものとします。rm CMakeCache.txt CC="cpptestscan gcc" CXX="cpptestscan g++" cmake -G "Unix Makefiles" ../project_root
- MakeCache.txt ファイルを参照して、CMAKE_*_COMPILER 変数が cpptestscan をポイントしているかどうかを確認します。
- Makefile が再生成される場合、ステップ 5 に進みます。コンパイラが認識されなかったためにブートストラップのフェーズで
cmake
が失敗した場合、そのままステップ 2 に進みます。
以下の BASH スクリプトを作成して、CMake コンパイラのように振る舞う
cpptestscan
ラッパー スクリプトを用意します。この例では、C コンパイラとして gcc を使用し、C++ コンパイラとして g++ を使用するものとします。>cat cpptest_gcc.sh #!/bin/bash cpptestscan gcc --cpptestscanRunOrigCmd=no $* > /dev/null 2>&1 gcc $* exit $? >cat cpptest_g++.sh #!/bin/bash cpptestscan g++ --cpptestscanRunOrigCmd=no $* > /dev/null 2>&1 g++ $* exit $?
- 1 番目のスクリプトは
cpptestscan
を起動し、コンパイラを実行せずにオプションを抽出します。2 番目のスクリプトは実際のコンパイラを実行します。その目的は、CMake によって「認められる」ためにスクリプト全体が見た目も動作もコンパイラのようになるためです。
- 1 番目のスクリプトは
- 2 つのスクリプトに実行可能属性を与えて共通の場所に置き、Makefile をスキャンする必要があるユーザーが皆スクリプトにアクセスできるようにします。PATH 変数に
cpptestscan
とスクリプトを必ず設定してください。 - 用意されたスクリプトから Makefile を再生成するオプションを使ってオリジナルの CMake コマンドを拡張します。CMake を使って、コンパイラとして使用されるスクリプトによって Makefile を再生成します。
オリジナルの CMake コマンドが
cmake -G “Unix Makefiles” ../project_root
である場合、既存の CMake のキャッシュを削除して cmake を実行し、コンパイラ変数を上書きします。次の例は、C コンパイラとして gcc を使用し、 C++ コンパイラとして g++ を使用するものとします。rm CMakeCache.txt cmake -G "Unix Makefiles" -D CMAKE_C_COMPILER=cpptest_gcc.sh -D CMAKE_CXX_COMPILER=cpptest_g++.sh ../project_root
- CMakeCache.txt ファイルを参照し、用意されたラッパーを CMAKE_*_COMPILER 変数がポイントしているかどうかを確認します。
cpptestscan
の環境変数を設定します。 出力する .bdf ファイルを必ず絶対パスで指定してください。export CPPTEST_SCAN_PROJECT_NAME=my_project export CPPTEST_SCAN_OUTPUT_FILE=$PROJ_ROOT/cpptestscan.bdf
- どの make 変数も上書きすることなく、通常と同じようにプロジェクト ビルドを実行します。 CPPTEST_SCAN_OUTPUT_FILE 変数で定義された場所にビルド データ ファイルが生成されます。この変数を設定していない場合は Makefile の場所に生成されます。
注意
デフォルトでは、CMake 生成の Makefile は、実行されたアクションについての情報だけを出力します。実際のコンパイラ/ リンカーのコマンドラインは出力しません。実行された コンパイラ/ リンカーのコマンドラインを確認するには、make コマンドに “VERBOSE=1” を追加します。
他のビルド システムでの cpptestscan または cpptestrace の使用
make ベースではないビルド システムの場合も、cpptestscan と cpptesttrace の使用方法は上記の例と非常に似ています。通常、コンパイラはビルド スクリプト中のどこかで変数として定義されます。cpptestscan を使ってこのビルド システムからビルド データ ファイルを作成するには、オリジナルのコンパイラ実行ファイルに接頭辞として cpptestscan を付加します。cpptesttrace を使ってこのビルド システムからビルド データ ファイルを作成するには、ビルド コマンド全体に接頭辞として cpptesttrace を付加します。
いつ cpptestscan を使うべきか
ビルド データ ファイルを準備する手続きをビルド システムに統合することを強く推奨します。統合すると、通常のビルドを実行するときに、別のアクションを実行することなく、ビルド データファイルを生成することができます。
それには、Makefile またはビルド スクリプトで、 コンパイラとリンカーの実行ファイルに接頭辞として cpptestscan を付加します。
いつ cpptesttrace を使うべきか
Makefile / ビルド スクリプトを変更できない場合、またはビルド コマンドラインからコンパイラ/ リンカーの実行ファイルに接頭辞を付加するのがあまりにも複雑な場合、ビルド コマンド全体の接頭辞として cpptesttrace を使用します。
GUI ウィザードで BDF ファイルをインポートしてプロジェクトを作成する
プロジェクト作成ウィザードを使用して BDF または CMake ビルド定義ファイルをインポートし、C++test プロジェクトを作成できます。
カスタム コンパイラの前提条件
カスタム コンパイラを使用している場合、GUI ウィザードを開く前に、カスタム コンパイラを追加してください。詳細については「カスタム コンパイラを使用するテストの設定」を参照してください。
ビルド データ/定義ファイルからプロジェクトを作成するには、次の操作を行います。
- [ファイル] メニューの [新規] > [プロジェクト] をクリックし、[C++test] > [ビルド データ ファイル (.bdf / .json) からプロジェクトを作成] を選択します。
- [次へ] をクリックし、ビルド データ/定義ファイルを参照します。
- プロジェクトの場所を指定します。[ワークスペースの場所を使用] プロジェクトの場所オプションを有効にすると、ワークスペースの場所にプロジェクトが作成されます。[外部の場所を使用] オプションを有効にすると、指定された場所に単一のプロジェクト ディレクトリが作成されます。インポートするプロジェクトが複数の場合、指定の場所にプロジェクトごとにサブディレクトリが作成されます。利用可能なプロジェクト作成オプションとその影響については、「C++test プロジェクトでの作業」を参照してください。
- プロジェクトのコンパイラ設定を指定します。手動で設定を指定するか、コンパイラ種類を指定して [自動検出] をクリックし、自動的に設定を行います。
-list-compilers
スイッチを指定してcpptestcli
を実行すると、サポート対象コンパイラの一覧を参照できます。 - [次へ] をクリックしてプロジェクト構造と内容を確認し、必要に応じて変更します。
- 第 1 レベルには、作成されるすべてのプロジェクトが表示されます。プロジェクトの名前を変更したりプロジェクトへのフォルダーをさらにリンクしたりするには、プロジェクト名を右クリックして適切なショートカット メニュー コマンドを実行します。
- 第 2 レベルには、リンクされるすべてのフォルダーが表示されます。フォルダーの名前を変更したり、プロジェクトから除外したりするには、フォルダー名を右クリックして適切なショートカット メニュー コマンドを実行します。
- 第 3 レベル以降には、リンクされたフォルダー中のすべてのフォルダーおよびファイルが表示されます。緑色のチェックマークは、 .bdf ファイルから参照されるファイルを表します。
- [完了] をクリックしてウィザードを終了するか、[次へ] をクリックしてパス変数を設定します (任意)。パス変数を設定する場合:
- リンクされたフォルダーでパス変数を使用するには、[パス変数を使用してリンクされたフォルダーの場所を定義する (利用可能な場合)] チェックボックスをオンにし、定義済みのパス変数を選択するか、[パス変数リスト] メニューからカスタム パス変数を選択します。カスタム パス変数を選択した場合、パス変数名とパス変数値をそれぞれ手動で入力します。
- [終了] ボタンをクリックします。指定の場所に指定のプロジェクトが作成されます。作成されたプロジェクトには、オプションがスキャンされたすべてのソース ファイルが含まれます。また、プロジェクトのプロパティが適切に設定されているはずです。
コマンドラインからプロジェクトを作成する
コマンドラインからビルド データ ファイル ベースのプロジェクトを作成することもできます。-bdf <cpptestscan.bdf>
スイッチを cpptestcli
に渡します。
プロジェクトの作成直後に、たとえば静的解析やテスト生成などの解析を実行したい場合、-config を使用して、目的のテスト コンフィギュレーションを指定します。例:
cpptestcli -data "</path/to/workspace>" -resource "<projectname>" -config "team://Team Configuration" -localsettings "</path/to/name.properties>" -bdf "</path/to/name.bdf>"
解析を実行せずに単純にプロジェクトを作成したい場合、 -config オプションを省略します。例:
cpptestcli -data "</path/to/workspace>" -resource "<projectname>" -localsettings "</path/to/name.properties>" -bdf "</path/to/name.bdf>"
過去のバージョンの C++test では、テストを実行せずにプロジェクトを作成するために -config "util/CreateProjectOnly" を使用しました。現行バージョンの C++test はこのオプションをもう使用しません。偽のテスト コンフィギュレーション "util/CreateProjectOnly" はもうサポートされません。
カスタム プロジェクト設定は、プレーン テキストのオプション ファイルで設定できます。-localsettings
スイッチを使ってオプション ファイルを cpptestcli
に渡します。詳細については「ローカル設定ファイル (オプション ファイル)」を参照してください。
例
ここでは、cpptestscan
を使ってコマンドラインから C++test プロジェクトを作成する方法について説明します。この例では C++test の ATM サンプルを使用します。このサンプルは <INSTALL_DIR>/Examples/ATM
ディレクトリにあります。
この例では make ベースのビルドを使用しますが、ビルド データ ファイル (.bdf ファイル) はどのビルド システムからも生成できます。
仮定と前提
cpptestscan
の実行ファイルが $PATH 変数に指定されているものとします ( cpptestscan の実行ファイルは、C++test のインストール ディレクトリにあります)。cpptestcli
の実行ファイルが $PATH 変数に指定されているものとします ( cpptestcli の実行ファイルは、C++test のインストール ディレクトリにあります)。g++
がオリジナル コンパイラの実行ファイルであるものとします。- ワークスペースおよび .bdf ファイルの場所は、shell/ コマンド プロンプトがサポートする形式で入力する必要があります。例:
/home/MyWorkspace on UNIX/Cygwin
c:\home\MyWorkspace on Windows
c:/home/MyWorkspace on Cygwin
- テストを実行せずにプロジェクトを作成するには、
-config
を省略します。 - 新規にプロジェクトを作成してテストを実行するには、適切なテスト コンフィギュレーションを使用します。 ( 例:
-config MustHaveRules
) - make の実行ですべてのオブジェクトが確実にビルドされるよう、完全なプロジェクトのリビルド (clean all) が実行されます。
例 1 - デフォルトの設定でワークスペースの場所に C++test プロジェクトを作成する
- オリジナルの Makefile をベースにして、ビルド データ ファイル (.bdf ファイル) を作成します。
<INSTALL_DIR>/Examples/ATM
ディレクトリに移動します。- オリジナル コンパイラの実行ファイル名の前に
cpptestscan
を付加して、ATM プロジェクトをビルドします:> make CC="cpptestscan g++" clean all
- 新しいビルド データ ファイル
(cpptestscan.bdf)
が<INSTALL_DIR>/Examples/ATM
ディレクトリに作成されたことを確認します。
- ビルド データ ファイルをベースにして、C++test プロジェクトを作成します。次の操作を行います。
- コマンドライン cpptestcli を使って、新しいプロジェクトを
/home/MyWorkspace
ワークスペースに作成します。:> cpptestcli -data /home/MyWorkspace -bdf cpptestscan.bdf
- 新しい C++test プロジェクト (ATM) が MyWorkspace に作成されました。このプロジェクトには、オリジナルの
<INSTALL_DIR>/Examples/ATM
プロジェクトのすべてのソース ファイルとビルド オブジェクトが含まれます。
- コマンドライン cpptestcli を使って、新しいプロジェクトを
例 2 - Visual C++ 7.1 をコンパイラとして設定し、myProject をプロジェクトとして設定して、オリジナル プロジェクトの場所に C++test プロジェクトを作成する
- オリジナルの Makefile をベースにして、ビルド データ ファイル (.bdf ファイル) を作成します。
<INSTALL_DIR>/Examples/ATM
ディレクトリに移動します。- オリジナル コンパイラの実行ファイル名の前に
cpptestscan
を付加して、ATM プロジェクトをビルドします:> make CC="cpptestscan --cpptestscanProjectName=myProject g++" clean all
- 新しいビルド データ ファイル
(cpptestscan.bdf)
が<INSTALL_DIR>/Examples/ATM
ディレクトリに作成されたことを確認します。myProject
がプロジェクト名として設定されている点に注目してください。
- ビルド データ ファイルをベースにして、C++test プロジェクトを作成します。次の操作を行います。
- まず、デフォルト設定をオーバーライドします。
<INSTALL_DIR>/Examples/ATM
に、opts.properties
という名前でテキスト ファイルを作成します。opts.properties
ファイルにbdf.import.compiler.family=vc_7_1
と入力して、コンパイラの種類に Visual C++ 7.1 をセットします。opts.properties ファイルに bdf.import.location=BDF_LOC と入力し
、目的のプロジェクトの場所としてcpptestscan.bdf
ファイルがある場所を設定します (cpptestscan.bdf ファイルは、オリジナル プロジェクトのディレクトリにあります)。
- 次に、コマンドライン cpptestcli を使って、新しいプロジェクトを
/home/MyWorkspace
ワークスペースに作成します。cpptestcli -data /home/MyWorkspace -bdf cpptestscan.bdf -localsettings opts.properties
- 新しい C++test プロジェクト (myProject) が <INSTALL_DIR>/Examples/ATM に作成されました。このプロジェクトには、オリジナルの <INSTALL_DIR>/Examples/ATM プロジェクトのすべてのソース ファイルとビルド オブジェクトが含まれており、コンパイラの種類として Visual C++ 7.1 がセットされています。
- まず、デフォルト設定をオーバーライドします。
注意:
- この例では、サポートされるコンパイラのリストにある vc_7_1 を使用しました。カスタムコンパイラを使用するには、[Parasoft] メニューの [設定] をクリックし、[コンフィギュレーション] > [カスタム ディレクトリ] > [カスタム コンパイラ] でパスを指定します。詳細については「カスタム コンパイラを使用するテストの設定」を参照してください。
- プロジェクトの場所として、
BDF_LOC
変数を使用しました。この変数はcpptestscan.bdf
ファイルの場所を参照します。
生成されたビルド データ ファイルを使って、GUI またはコマンドラインからプロジェクトを作成することができます。
CMake ビルドへの C/C++test の統合
C/C++test には、CMake の構文を使用して CMakeLists.txt
ビルド ファイルに直接 C/C++test プロジェクトを定義できるようにする CMake 用拡張が付属しています。拡張には、プロジェクトの場所、構造、内容を含めた C/C++test プロジェクトを定義するための cpptest_add_executable()
CMake 関数があります。結果として、CMake ビルド時に C/C++test プロジェクト定義ファイル (.project および .parasoft) とビルド データ ファイル (.bdf) が自動生成されます。ビルドが完了したら、C/C++test プロジェクト ファイルと BDF をワークスペースにインポートし、解析やテストを実行できます。
CMake 統合のサポートは、以下のコンポーネントで構成されます。
<CPPTEST_INSTALL_DIR>/integration/cmake/cmake/cpptest.cmake
– CMake 用 C/C++test 拡張です。C/C++test プロジェクト定義を生成するには、これをCMakeFiles.txt
ビルド ファイルに追加する必要があります。<CPPTEST_INSTALL_DIR>/integration/cmake/cmake/cpptest.templates/*.in
– 自動生成されるプロジェクト定義ファイルの C/C++test テンプレートです。CMake 用拡張を柔軟にカスタマイズできます。
また、<CPPTEST_INSTALL_DIR>/integration/cmake
ディレクトリには、C/C++test 拡張を使用した CMake 統合のサンプル プロジェクトがあります。
要件
- Linux 64-bit
- C/C++test Professional for Linux 64-bit
- CMake 3.10 以降
ワークフローの概要
CMakeLists.txt
ビルド ファイルに<INSTALL_DIR>/integration/cmake/cmake/cpptest.cmake
をインクルードします。cpptest_add_executable()
関数を使用して C/C++test プロジェクトに対応するターゲットを定義します (「C/C++test プロジェクトの定義」を参照)。configure
およびbuild
コマンドを使用して CMake を実行し、C/C++test プロジェクト設定ファイルを生成します。- 自動生成された C/C++test プロジェクトを UI ([インポート] > [一般] > [既存プロジェクトをワークスペースへ]) またはコマンド ライン (
-import <ROOT_FOLDER_OR_PROJECT_FILE>
) から Eclipse ワークスペースにインポートします。 - テスト ケースを作成し、スタブを設定します。詳細については「テストの作成と実行」を参照してください。
- 単体テストを実行します。
テスト ケースやスタブなどのテスト成果物をソース管理システムに保存する場合、自動生成されたプロジェクト定義ファイルやビルド データ ファイル (.bdf) をチェックインしないでください。これらのファイルは、CMake プロジェクトをビルドするたびに生成する必要があります。
C/C++test プロジェクトの定義
CMake による C/C++test プロジェクト ファイルの自動生成を有効にするには、cpptest_add_executable()
関数を使用して、C/C++test プロジェクトに対応するターゲットを定義する必要があります。最低限でも、以下を設定する必要があります。
- ターゲット名
- C/C++test プロジェクトに追加するすべてのソース ファイル
- ビルド オプションおよび依存関係 (外部ライブラリ)。
target_include_directories()
やtarget_link_libraries()
などの通常の CMake 関数を使用します。
以下のオプションがあります。
オプション名 | 説明 | デフォルト |
---|---|---|
<target_name> | ターゲットの名前です。 | デフォルト値はありません。必ずこのオプションを設定する必要があります。 |
CPPTEST_COMPILER_ID | ターゲット固有の C/C++test コンパイラ識別子です。すべてのターゲットに対して同じコンパイラを指定するには、 | gcc_9-64 |
CPPTEST_PROJECT_NAME | C/C++test プロジェクトの名前です。 | ターゲットの名前と同じです。 |
CPPTEST_PROJECT_LOC | C/C++test プロジェクトの場所です。 | カレント フォルダー |
CPPTEST_PROJECT_FOLDERS | C/C++test プロジェクトにインクルードするその他のソース フォルダーです。追加するフォルダーごとに名前と場所を指定します。 | デフォルトでは、ルート ディレクトリだけが C/C++test プロジェクトに含まれます。 |
EXCLUDE_FROM_ALL | 指定されている場合、現在のターゲットがデフォルトの | 無効 |
SOURCES | C/C++test プロジェクトに追加するソースのリストです。 | デフォルト値はありません。必ずこのオプションを設定する必要があります。 |
TARGETS | 既存の CMake ターゲットのリストです。指定されている場合、指定されたターゲットのソース ファイルのリストが C/C++test プロジェクトに追加されます。 | デフォルト値はありません。必ずこのオプションを設定する必要があります。 |
cpptest_add_executable( <target_name> [CPPTEST_COMPILER_ID <compiler_id>] [CPPTEST_PROJECT_NAME <test_project_name>] [CPPTEST_PROJECT_LOC <test_project_location>] [CPPTEST_PROJECT_FOLDERS <name1=location1> <name2=location2> ...] [EXCLUDE_FROM_ALL] SOURCES <src1.cpp> <src2.cpp> ... | TARGETS <target1> <target2> ... )
CMake との統合の例
このセクションでは、<CPPTEST_INSTALL_DIR>/integration/cmake
ディレクトリにあるサンプル プロジェクトを使用して、CMake との統合を説明します。
<CPPTEST_INSTALL_DIR>/integration/cmake
に移動します。- デフォルトの GNU GCC 9 (x64) 以外のコンパイラを使用している場合、
modules/mod1/CMakeLists.txt
およびcmake/cpptest.cmake
のデフォルトのコンパイラ識別子gcc_9-64
を使用しているコンパイラの識別子に置き換えます。 次のコマンドを実行してサンプル プロジェクトをビルドします。
> cd <CPPTEST_INSTALL_DIR>/integration/cmake > mkdir build > cd build > cmake .. > make
CMake はプロジェクトをビルドし、C/C++test プロジェクトを生成します。次の CMakeLists.txt ファイルは、異なるプロジェクト レイアウトと設定オプションを持つ C/C++test プロジェクトを定義しています。
- app/CMakeLists.txt
- modules/mod1/CMakeLists.txt
- tests/cpptest_modules/CMakeLists.txt- C/C++test がインストールされている IDE で空のワークスペースを開きます。
- IDE メニューの [ファイル] > [インポート] > [一般] > [既存プロジェクトをワークスペースへ] をクリックし、
<CPPTEST_INSTALL_DIR>/integration/cmake
ディレクトリを参照して自動生成された 3 つのプロジェクトを IDE にインポートします。 builtin://Generate Unit Tests
テスト コンフィギュレーションを使用してテスト ケースを生成します。builtin://Run Unit Tests
テスト コンフィギュレーションを利用してテスト ケースを実行します。