このセクションではC/C++ ツールチェーンまたは Docker コンテナーによって提供されるテスト環境を使用して解析やテストを実行する方法を説明します。
このセクションの内容
C/C++test は Docker コンテナーでの解析およびテストの実行をサポートしています。このシナリオでは、テスト環境または C/C++ ツールチェーンを含むコンテナーで解析およびテストを実行するようローカル マシンにホストされた C/C++test を構成します。
C/C++test の Docker 統合は次のコンポーネントで構成されます。
[INSTALL_DIR]/integration/docker
にある Docker コンテナーでのリモート プロセス実行用スクリプト:remote-gcc
– gcc コマンド ラッパーremote-g++
– g++ コマンド ラッパーremote-exec
– 汎用コマンド ラッパーbuiltin://Run Unit Tests in Container
– Docker コンテナー内で単体テストを実行するためのテスト コンフィギュレーションC/C++test と Docker コンテナー間の通信を可能にするには、ホスト上の C++test でテストしたいプロジェクトに関連するすべてのディレクトリにコンテナーがアクセスできること、またC/C++test が識別子または名前でコンテナーを識別できることを確認してください。
2.CPPTEST_CONTAINER_NAME
環境変数にコンテナーの ID またはコンテナ名を設定します。利用しやすいよう、コンテナーに読みやすく意味のある名前を付けることを推奨します。
次のサンプルは、プロジェクトとすべてのソース ファイルが Eclipse ワークスペース (/home/devel/workspace
) にあり、C/C++test が /opt/parasoft/cpptest
にインストールされていると仮定します。--name
オプションで指定されたコンテナー名 "gcc9-test-container" は、コンテナー イメージに GCC 9 コンパイラが含まれていることを示します。
docker run --rm -it -d -v /opt/parasoft/cpptest:/opt/parasoft/cpptest -v /home/devel/workspace:/home/devel/workspace --name gcc9-test-container gcc:9 |
環境変数にコンテナー名を設定します。
export CPPTEST_CONTAINER_NAME=gcc9-test-container |
Docker コンテナーでテストを実行するには、カスタムコンパイラ設定を作成し、C/C++test のランタイム ライブラリをコンテナー内でビルドできるようにする必要があります。
<CUSTOM_COMPILER_CONFIG>/gui.properties
ファイルを変更して次のオプションを設定または削除します。autoBuildRuntimeLib=true
を設定linkerCmdLine
から -lcpptestruntime64
を削除静的コード解析だけを実行する場合は、カスタム コンパイラ設定の作成をスキップできます。
プロジェクト プロパティを変更してプロジェクトのリモート ツールチェーンを設定する必要があります。
<CPPTEST_INSTALL_DIR>/integration/docker/remote-gcc
<CPPTEST_INSTALL_DIR>/integration/docker/remote-g++
<CPPTEST_INSTALL_DIR>/integration/docker/remote-g++
<CPPTEST_INSTALL_DIR>/integration/docker
からスクリプトをプロジェクトにコピーし、プロジェクトへの相対パスを指定することもできます。そうすると、設定をソース管理システムに保存し、チームで共有できます。例: ${project_loc}/docker/remote-gcc
${project_loc}/docker/remote-g++
${project_loc}/docker/remote-g++
静的解析を実行する前に、Docker コンテナーが実行されていることを確認します (「コンテナーの設定と開始」を参照)。それ以外の手順は必要ありません。
任意のテスト コンフィギュレーションを使用してコードを解析できます。解析時、C/C++test はプロジェクト プロパティで指定したラッパー スクリプトを経由してアクセスした Docker の C/C++ コンパイラを使用します (「コンテナーでのテスト用にプロジェクトをセットアップする」を参照)。
C/C++test で単体テストを作成する前に、Docker コンテナーが実行されていることを確認します (「コンテナーの設定と開始」を参照)。それ以外の手順は必要ありません。
単体テストを生成するテスト コンフィギュレーション (たとえば builtin://Generate Unit Tests
など) を使用できます。テスト生成時、C/C++test はプロジェクト プロパティで指定したラッパー スクリプトを経由してアクセスした Docker の C/C++ コンパイラを使用します (「コンテナーでのテスト用にプロジェクトをセットアップする」を参照)。
Run Unit Tests in Container
を複製し、パラメーターを変更してカスタム テスト コンフィギュレーションを作成します。たとえば、[実行] > [全般] > [実行の詳細] > [リモート実行コマンド] で実行ラッパーを変更します (デフォルトは ${cpptest:install_dir}/integration/docker/remote-exec
)。Run Unit Tests in Container
テスト コンフィギュレーションを実行します。C/C++test は以下を実行します。remote-exec
ラッパー スクリプトを使用してコンテナー内でテストを実行します。