Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

本章はGNU GCCを使った手順になります。

Table of Contents

サンプル環境の概要

ホストOS上にインストールされたC/C++testからテストを実行すると、docker execコマンドを通してDockerコンテナ上の開発環境を用いて静的解析・単体テストを行います。ホストのソースコードをマウントして実行するため、テスト結果をホスト上のC/C++testから確認できます。

添付資料

View file
nameAttachment.zip

Dockerfile
Dockerコンテナの構成内容をまとめたファイル。Docker Hub(https://hub.docker.com/)にあるUbuntu(18.04 LTS)をベースイメージとして下記パッケージをインストールした独自のイメージを作成します

  • コンパイラ: GNU GCC 7.5

  • ビルドユーティリティ: build-essentialパッケージ

custom_compiler
C/C++testのコンパイラ設定ファイル。
GNU GCCで単体テストを実施できるようにカスタマイズした設定ファイルです。

test_configs
C/C++testの単体テストを実行するためのテストコンフィギュレーション。静的解析はC/C++testに内蔵されているビルトインテストコンフィギュレーションをそのまま使用できます。

set_env.sh/generate_BDF.sh/start_cpptest.sh

  • set_env.sh: C/C++testおよびツールチェインなどの環境変数を設定するスクリプト

  • generate_BDF.sh: Dockerコンテナ内で対象プロジェクトをビルドし、ビルドデータファイル(BDF)を作成するスクリプト

  • start_cpptest.sh: Dockerコンテナ内でテスト実現にするための設定をしたうえでC/C++testを起動するスクリプト

サンプル環境構築手順

本手順書では、以下のディレクトリを前提として説明しています。これらのディレクトリパスはご利用の環境により異なりますので適宜読み替えてください。

  • <ホームディレクトリ>: /home/cpptest

  • <ツールディレクトリ>: /opt/app/parasoft

  • <C/C++testインストールディレクトリ>: /opt/app/parasoft/cpptest

事前準備 - 付属資料の配置&初期設定

  1. 付属資料を配置するための新規のディレクトリを<ホームディレクトリ>に作成します。
    ※ディレクトリ名称は任意ですが、マルチバイト文字は含めないようにしてください。

...

  1. <付属資料ディレクトリ>/cpptest_work/tools/custom_compiler/gcc_7-64_docker/gui.propertiesをエディタで開き、cppExecutablecExecutablelinkerExecutableの三か所に記載されている<C/C++testインストールディレクトリ>を実際の環境にあわせて変更します。

...

  1. <付属資料ディレクトリ>/cpptest_work/tools/set_env.shをエディタで開き、CPPTEST_INS_DIR変数<C/C++testインストールディレクトリ>を実際の環境にあわせて変更します。

Code Block
languagebash
export CPPTEST_INS_DIR=/opt/app/parasoft/cpptest
  1. start_cpptest.shを実行し、C/C++testを起動します。

Code Block
languagebash
$ ./start_cpptest.sh

...

  1. テストコンフィギュレーションダイアログの右側より [実行]タブを選択し、[実行の詳細] > [テスト実行フロー:]下のRemote execution commandの右側の<C/C++testのインストールディレクトリ>を実際の環境にあわせて変更します。変更後、[適用]をクリック、[閉じる]を選択します。

  2. [Parasoft] > [ユーザー定義] > [03. Run Unit Tests in Container] に対しても、手順9.を行い、実際の環境にあわせて変更します。

以上で、初期設定は完了となります。この手順は初回のみ実施いただければ問題ありません。

このセクションの内容:

Child pages (Children Display)
allChildrentrue