このセクションでは、 「コマンドライン インターフェイス (cli)」で説明されている C/C++test コマンドライン インターフェイス (cpptestcli
) からテストを実行する方法について説明します。
このセクションで説明されている Team Server 機能は非推奨になりました。
このセクションの内容
前提条件
コマンドライン モードを使用するには、コマンドライン インターフェイスのライセンスが必要です (C/C++test Automation Edition に付属)。
ライセンス: Extended Command Line Mode と Desktop Command Line Mode
C/C++test で利用できるコマンド ライン インターフェイスのライセンスは 2 つあります。
- Extended Command Line Mode は Automation Edition に含まれており、Custom Edition でも利用できます。
- Desktop Command Line Mode は Custom Edition で利用できます。Desktop Command Line Mode は、Extended Command Line Mode に似た機能を提供します。 ただし、並列処理において、特定のタスク (たとえば静的解析) に対して同時に実行でき る並列スレッドは 8 個までです。
- Automation Edition のすべての機能にアクセスするには、Parasoft Team Server のインストールと設定も必要です。
- テストを開始する前に、「設定」の説明に従って C/C++test の環境設定を行うことを強く推奨します。
コマンドラインからテストを実行するには、C/C++test のインストール ディレクトリをパスに設定する必要があります。 パスに設定しない場合は、
c:\parasoft\c++test\cpptestcli.exe
のように絶対パスで cpptest を実行する必要があります。C/C++test でコードをテストするには、Eclipse C/C++ プロジェクトにコードを追加する必要があります。新規プロジェクトの作成方法については「プロジェクトの作成」を参照して ください。
- 初期テストを実行する前に、プロジェクト オプションを確認して変更することを強く推奨し ます。詳細については「設定ファイル (オプション ファイル)」を参照してください。
cpptestcli
から各開発者の作業に関連したエラー/ 結果だけを開発者に送信するには、次のいずれかの条件を満たす必要があります。「ソース管理システムのデータに基づいてコード作成者を算定するように C/C++test を設定している」かつ「ソース管理システムを使用している」かつ「ソース管理システムでの各開発者のユーザー名とメール ドメインが開発者の電子 メール アドレスに一致している」 ( メール ドメインはオプション ファイルおよび「
-settings %SETTINGS_FILE%
」で解説の-settings
オプションを使って指定)「ローカル ユーザーに基づいてコード作成者を算定するように C/C++test を設定している」かつ 「ユーザー名およびメール ドメインが開発者の電子メール アドレスに一致している」 (メール ドメインはオプション ファイルおよび「
-settings %SETTINGS_FILE%
」で解説の-settings
オプションを使って指定 )」
セットアップの概要
Parasoft C/C++test Professional には 2 つのユーザー モードがあります。インタラクティブにデスクトップで C++test を 使用する「GUI モード」とコマンドライン インターフェイスを介して実行する「コマンドライン」モードです。コマンドライン インターフェイスは Automation Edition の標準機能です。
コマンドライン モードは通常、定期的/ 継続的なビルドまたは自動回帰テストのインフラストラク チャと連携して、定期的/ 継続的なコード解析とテストを実行するために使用します。C/C++test の コマンドライン インターフェイスは、指定のプロジェクト リソースに対して実行できます。コマン ドライン インターフェイスの実行の一部として、C/C++test は次の 1 つ以上のことを実行します。
- コードの静的解析。定義されたコーディング ポリシーのチェック、実行時のバグの可能性の解析、メトリクスの解析を含みます。
単体テストの実行
- SCM コード リポジトリの解析。最後の実行後のコードの変更を特定し、更新されたコード に対するコード レビュー セッションを開始します。
- レポートの生成と集約レポート サーバーへの送信。または開発者とマネージャーへの送信。 レポート設定での指定に従って送信されます。
実行の一部として、C/C++test は (サポートされている場合) SCM クライアントを使って SCM システムから自動的にファイルの変更情報を取得します。そしてコード解析と実行されたテストの結果に基づいて特定の個人のためのタスクを生成します。
C++test 固有の実行オプションはテスト コンフィギュレーションと環境設定によって制御されま す。
テスト コンフィギュレーションについては、C/C++test のビルトイン テスト コンフィギュレーションをベースにして作成することも、GUI モードで新規に作成することもできます。ビルトイン テスト コンフィギュレーションは、そのまま使用するのではなく、ユーザー定義テスト コンフィギュレーションのためのテンプレートとして利用することを推奨します。
環境設定は C/C++test GUI から設定できます。ほとんどの環境設定は、コマンドライン インターフェイスの呼び出しにパラメーターとして渡される構成ファイルからも設定できます。設定ファイルの詳細については「設定ファイル ( オプション ファイル)」 を参照してください。GUI で設定した C/C++test の環境設定はデフォルトで適用されます。GUI の設定は、コマン ドライン モードで使用される構成ファイルの値で個別に上書きできます。そのため、ユーザーはす べてのコマンドライン実行で使用される基本的な環境設定を保持しつつ、必要に応じて特定のテスト コンフィギュレーションの特定の実行用に設定ファイルを用意できます。たとえば、テスト実行ごと に異なる情報をレポートに含める場合や、レポート名や E-mail ヘッダーなどのレポートの E-mail オプションを変更する場合などにこの方法が役立ちます。
ステップ 1: 環境設定
C/C++test の環境設定を見るには、[Parasoft] メニューの [設定] をクリックします。次の設定から開始します。
- ライセンス: ライセンス設定または License Sever 設定を指定します。
- DTP: DTP サーバー設定を指定します。
- (オプション) Team Server (非推奨): [Team Server を有効にする] チェックボックスをオンにします。Team Server が自動検出されない場合、[サーバー情報] > [ホスト名] に Team Server の IP アドレスを入力します。C/C++test と同じマシン上で Team Server を実行 している場合は「
localhost
」と入力します。Team Server のデフォルト ポート (18888) をインストール時に変更したのでない限り、[ ポート番号] は変更しないでください。[接続のテスト] ボタンをクリックして接続を検証します。 - ソース管理: この設定を行うと、影響があったコードまたはテスト成果物を最後に変更した個人に対して、ツールの結果を自動的にマップすることができます。ソース管理システムを チェックし、「ソース管理リポジトリとの接続」の説明に従って SCM に適したオプションを設定します。
- スコープと作成者: 「タスクの割り当てとコード作成者の設定」にあるように、環境に適したオプションを有効にします。
レポート: 次のオプションはデフォルトで有効であり、このオプションから開始するのが適しています。
詳細な開発者レポート (タスクの詳細を含む)
作成者ごとのタスクの概要(概要の表)
コマンドライン モードでフォーマットされたレポートを生成する
抑制の詳細 (静的解析のみに適用される)
E-mail: レポートを E-mail で送信するための設定です。C/C++test テスト マシンからアクセスできるメール サーバー上にある、既存の E-mail アカウントを指定する必要があります。
レポート > E-mail 通知:
必要に応じて [レポートを E-mail で送信する] を有効にします。メールの配信には上記の [E-mail] の設定が使用されます。
マネージャー レポートには、C/C++test が生成したすべてのテスト結果が含まれます。開発者レポートには、個々の開発者のテスト結果だけが含まれます。適切なオプションを有効にし、E-mail アドレスを指定します。
ステップ 2: テスト コンフィギュレーションのカスタマイズ
「テスト コンフィギュレーションの設定」の説明に従ってユーザー定義テスト コンフィギュレーションを作成します。
ステップ 3: 設定ファイルの作成
「設定ファイル (オプション ファイル)」の説明にあるように設定ファイルを作成します。
ステップ 4: 現在実行中のビルド システムでコマンドライン インター フェイスをアクティブにする (たとえばバッチ スクリプト)
たとえば、コマンドは次のようになります。
cpptestcli -data "c:\MyWorkspace" -resource "ProjectToTest" -config builtin://ShouldHaveRules -publish -settings acme_policy.settings
テストの実行
コマンドラインからテストを実行するための全般的な手順は次のとおりです。
- 適切なオプションを指定して
cpptestcli
ユーティリティを使用し、コマンドライン モードでテストを実行します。利用できるすべてのオプションの一覧については「コマンドライン オプション」を参照してください。主要なオプションは次のとおりです。-data: Eclipse ワークスペースの場所。
- -config: テスト コンフィギュレーション。
- -resource: テスト対象のリソース (たとえばプロジェクト、フォルダー、ファイル)。
- -publish: DTP に結果をパブリッシュします。
- -report: レポートを生成します。
- -settings: Team Server/Parasoft DTP/メール レポートの詳細設定を渡します。詳細については「設定ファイル (オプション ファイル)」 を参照してください。
ヘッダーのテスト
C/C++test は、テスト対象のソース ファイルがヘッダーをインクルードしていない限り、ヘッダーを直接テストしません。詳細については「ヘッダー ファイルを解析するには ? どのファイルが解析されるのか ?」 を参照してください。
テンプレート関数のテスト
C/C++test は、インスタンス化された関数テンプレートとインスタンス化されたクラス テンプレートのメンバーに対して静的解析と単体テストを実行できます。詳細は「C++ テンプレート関数のサポート」を参照してください。
注意 Windows でのコマンドライン テスト
- C/C++test は、Cygwin の
"/cygdrive/DISK/PATH"
書式を使って指定されたファイル パスをサポートしません。標準的な Windows のパス書式を使用してください。 - シェル/ コンソールによって、ファイル パスのバックスラッシュを 2 つ重ねてエスケープする必要があります。例:
"C:\\MyLocation\\MyFile"
-settings
オプションを使ってオプション ファイルでファイル パスを使用する場合、ファイル パス中のすべてのバックスラッシュは 2 つ重ねてエスケープする必要があります。またはスラッシュを使用できます。例:"C:/MyLocation/MyFile"
cli の呼び出し
cpptestcli
の一般的な書式は次のとおりです。
cpptestcli [OPTIONS]
通常、cpptestcli の呼び出しには次の書式を使用します。
cpptestcli -data "c:\MyWorkspace" -resource "ProjectToTest" -config builtin://ShouldHaveRules -publish
特定のプロジェクト リソースを解析/ テストの対象から除外するには
一部のファイルを解析/ テストから除外する場合 (たとえば自動生成ファイルを静的解析の対象から外す場合など)、解析/ テストの対象から外すリソースを指定できます。詳細については「テストから除外するリソースの指定」を参照してください。この設定を GUI で行うと、GUI からでもコマンドラインからでも、このプロジェクトのすべてのテストに対して設定が適用されます。
-data オプションによる Eclipse ワークスペースの指定
テスト対象のプロジェクトがデフォルトのワークスペース以外の場所にある場合、 -data
オプションを使う必要があります。たとえば次の Windows コマンドは My Configuration テスト コンフィギュレーションを使って C++testExample プロジェクトをテストし、結果レポートを生成し、レポートを c:\reports\Report1
ディレクトリに保存します。cpptestcli -data "c:\Documents and Settings\cynthia\ApplicationData\Parasoft\C++test\workspace" -resource "C++test Example" -config user://"My Configuration" -report c:\reports\Report1
テスト対象のプロジェクトがデフォルトにある場合、-data
オプションは不要です。たとえば次のWindows コマンドは My Configuration テスト コンフィギュレーションを使用して C++test Example プロジェクトをテストし、結果レポートを生成し、レポートを c:\reports\Report1
ディレクトリに保存します。cpptestcli -resource "C++test Example" -config user://"My Configuration" -report c:\reports\Report1
コマンドライン オプション
利用できる cpptestcli
のオプションは次のとおりです。
全般的なオプション
-config
実行する テスト コンフィギュレーションを%CONFIG_URL% -
%CONFIG_URL%
で指定します。
プロジェクトをインストールするときを除き、このパラメーターは必須です。%CONFIG_URL%
は、 URL 、ビルトイン テストコンフィギュレーションの名前、またはローカル ファイルへのパスとして解釈されます。例:- ファイル名:
-config "mylocalconfig.properties"
- URL:
-config "http://intranet.acme.com/cpptest/team_config.properties"
- ビルトイン コンフィギュレーション:
-config "builtin://Demo Configuration"
-config "Demo Configuration"
- ユーザー定義コンフィギュレーション:
-config "user://My First Configuration"
- チーム コンフィギュレーション:
-config "team://Team Configuration"
-config "team://teamconfig.properties"
- ファイル名:
-help
- ヘルプ情報を表示します。テストは実行しません。-settings
%SETTINGS_FILE% -
オプション ファイル%SETTINGS_FILE%
からグローバル設定を読み込みます。グローバル設定には、Parasoft DTP、電子メール、電子 などの設定があります。
オプション ファイルはプロパティ ファイルです。オプション ファイルは、レポート (レポートの送信先、レポートのラベル、メール サーバー、メール ドメインなど)、Parasoft DTP Server、電子メールの設定などを制御できます。
複数の設定ファイルを適用できます。先に指定されたファイルの設定は、後に指定されたファイルの設定で上書きされます。
このオプションを使用すると、C/C++test を起動する実行モジュール (cpptest.exe または eclipse.exe) によってコマンド ラインから GUI に設定をインポートできます。この方法を利用すると、プロパティ ファイルのすべての設定でワークスペースの現在の設定が置き換えられます。例:
cpptest.exe -settings local.settings
dtp.autoconfig
設定は GUI に適用されないため、インポート時に無視されます。
オプション ファイルの作成の詳細については「設定ファイル (オプション ファイル)」を参照してください。
-property <key>=<value> -
コマンド ラインで直接 1 つの設定を指定できます。次のフォーマットを使用します。key=value
このオプションを複数回使用して、1 つのコマンド ラインで複数の設定を指定できます。同じキーのエントリが複数ある場合、先に指定されたエントリは上書きされます。例:
-property session.tag=sa_linux -property report.dtp.publish=true -property techsupport.auto_creation=true
-settings
オプションを使用して指定したエントリは、常に -property
オプション設定に上書きされます (コマンド ラインでオプションが指定された順番にかかわらず)。
このオプションを使用すると、C/C++test を開始する実行ファイル (cpptest.exe または eclipse.exe) によってコマンド ラインから GUI に設定をインポートできます。この方法を利用すると、指定したすべての設定でワークスペースの現在の設定が置き換えられます。例:
cpptestcli.exe -property report.test_params=true
dtp.autoconfig
設定は GUI に適用されないため、インポート時に無視されます。
-nobuild
- テスト前にプロジェクトをビルドしないようにします。テストの実行前にすでにプロジェクトをビルドしている場合、このオプションを使用します。-fail
- 違反またはセットアップの問題がレポートされた場合、ゼロ以外の終了コードを返してビルドを失敗させます (プロセスが失敗したときに返される終了コードについては「コマンド ラインの終了コード」を参照)。-publish
- レポートを DTP にパブリッシュします。DTP の場所は、GUI またはオプション ファイルで指定できます(「DTPとの接続」を参照)。-report
%REPORT_FILE% -
%REPORT_FILE%
で指定した XML レポートと HTML レポートを生成します。拡張子が異なる、同じ名前のレポートが、同じディレクトリに生成されます(report.format オプションを指定した場合、PDF 形式またはカスタ ム形式のレポートを生成できます)。
次のすべてのコマンドは、 HTML レポートfilename.html
および XML レポートfilename.xml
を生成します。-report filename.xml
-report filename.htm
-report filename.html
ユーザーが指定したパスが拡張子 .html、.htm、.xml で終了している場合、このパスは、生成する HTML レポート ファイルへのパスとして扱われます。そうでない場合、パスはレポートを生成するディレクトリとして扱われます。
ファイル名を明示的に指定していて、指定ディレクトリに同じ名前のファイルがすでに存在する場合、既存のファイルは上書きされます。ファイル名を明示的に指定していない場合、既存のファイルは上書きされません。新しいファイル名は repXXXX.html となります。 XXXX はランダムな数字です。-report
を指定しない場合、レポート ファイルはデフォルトの名前 "report.xml/html" で現行ディレクトリに作成されます。-dtp.autoconfig
%PROJECT_NAME@SERVER
_NAME:port% -
DTP サーバーに格納された設定を取得します (保守を容易にするために推奨します。特にローカルに格納したローカル設定ファイルがまだない場合に推奨します)。
例:-dtp.autoconfig
[email protected]:8080
-encodepass <plainpassword> -
暗号化したパスワードを生成します。「Encrypted password: <encpass>」というメッセージを表示し、cli アプリケーションを終了します。
夜間プロセスが 1) Team Server にログインし、2) 電子メールを送信する場合、このオプションを使って必須のパスワードを暗号化することができます。-showdetails
- 詳細なテスト進行状況の情報を表示します。
-appconsole stdout|% OUTPUT_FILE%
- C/C++test のコンソール出力を標準出力または%OUTPUT_FILE%
ファイルにリダイレクトします。
例:-appconsole stdout
(標準出力にリダイレクトされるコンソール)-appconsole console.out
(console.out file ファイルにリダイレクトされるコンソール)-list-compilers
- 有効なコンパイラの種類の値を出力します。-list-configs - 有効なテスト コンフィギュレーションの値を出力します。
- 入力スコープを収集するための既存のビルド データ ファイル (.bdf) または別のプロジェクト定義ファイルへのパスを指定します。ビルド データ ファイルの作成については「cpptestscan または cpptesttrace を使ってビルド データ ファイルを作成する」を参照してください。このオプションは、静的解析を実行する場合、CMake ビルド システムによって生成されるJ SON フォーマットのファイルもサポートします。単体テスト実行での-bdf
-bdf
オプションを使用した JSON ファイルの指定は、現在サポートされていません。-include %PATTERN%,
-exclude %PATTERN% - テストに含める/除外するファイルを指定します。
このオプションの後に、ファイル名またはパスを指定する必要があります。
ファイル名の指定にはワイルドカード * および? を使用できます。1 つ以上のパス名のセグメントを指定するには ** を使用します。シンタックスのパターンは Ant ファイル セットの指定に似ています。
例:-include **/Bank.cpp
(Bank.cpp ファイルをテストする)-include **/ATM/Bank/*.cpp
(ATM/Bank フォルダー中のすべての .cpp ファイルをテストする)-include c:/ATM/Bank/Bank.cpp
(c:/ATM/Bank/Bank.cpp ファイルだけをテストする)-exclude **/internal/**
(パス中に "internal" というフォルダーがあるクラスをテストから除外する)-exclude **/*Test.cpp
(Test.cpp で名前が終わるファイルをテストから除外する)さらに、拡張子が.lst のファイルを指定した場合、このファイルはパターン リスト ファイルとして扱われ、ファイル中の各行が1 つのパターンとして扱われます。
たとえば、次のようにオプションを設定し、-include c:/include.lstinclude.lst ファイルの内容が次のとおりであるものとします。
**/Bank.cpp**/ATM/Bank/*.cpp
c:/ATM/Bank/Bank.cpp
この設定は、次のオプション設定と同じことになります。
-include **/Bank.cpp -include **/ATM/Bank/*.cpp
-include c:/ATM/Bank/Bank.cpp"
-path-to-eclipse
- C/C++test を Eclipse プラグインとしてインストールした場合に cppptestcli とともに使用する Eclipse を使用します。
プロジェクトのインポートと作成のオプション
オプション | 目的 | 備考 |
---|---|---|
| 指定された Eclipse プロジェクトを Eclipse ワークスペースにインポートします。 |
%ECLIPSE_PROJECT% がディレクトリの場合、そのディレクトリとサブディレクトリにあるすべてのEclipse プロジェクトがインポートされます。 例:
-import を使用するとき、 |
| ビルド定義ファイル (.bdf ファイル) から C/C++test プロジェクトを作成します。 BDF を作成するには、コンパイラ/ リンカーの接頭辞として このオプションは、静的解析を実行する場合、CMake ビルド システムによって生成される JSON フォーマットのファイルもサポートします。単体テスト実行での -bdf オプションを使用した JSON ファイルの指定は、現在サポートされていません。 | 例: - 詳細については「既存のビルド システムを使った C++test プロジェクト」を参照してください。オプション ファイルでオプションを指定することができます。詳細については「設定ファイル (オプション ファイル)」を参照してください。
|
-ccs %CCS_PROJECT% |
pjt プロジェクト ファイル - 指定のプロジェクトがインポートされます。 | 例: -ccs "MyProject.pjt" -ccs "c:\DevelRootDir"
|
-ewp %EWP_PROJECT% | IAR Embedded Workbench プロジェクトをインポートします。 .eww ワークスペース ファイルの場合 - ワークスペースのすべてのファイルがインポートされます。 ディレクトリの場合 - そのディレクトリとサブディレクトリにあるすべての .ewp プロジェクトがインポートされます。 | 例: -ewp "MyProject.ewp" -ewp "MyWorkspace.eww" -ewp "c:\DevelRootDir"
|
| Green Hills .gpj プロジェクトから C/C++test プロジェクトを作成します。 | Green Hills .gpj プロジェクトのインポート オプションをオプションファイルで指定することができます。詳細については「設定ファイル (オプション ファイル)」を参照してください。 |
-hew %HEW_PROJECT% | High-performance Embedded Workshop プロジェクトをインポートします。 |
例: -hew "MyProject.hwp" -hew "MyWorkspace.hws" -hew "c:\DevelRootDir" |
| Keil uVision3 プロジェクトをインポートします。 .uv2 ファイルの場合 - 選択されたプロジェクトがインポートされます。 ディレクトリの場合 - そのディレクトリとサブディレクトリにあるすべての .uv2 プロジェクトがインポートされます。 |
例: -uv "MyProject.uv2" -uv "c:\DevelRootDir" |
-wpj %WPJ_PROJECT% | Wind River Tornado プロジェクトをインポートします。 .wpj ファイルの場合 - 選択されたプロジェクトがインポートされます。 .wsp ワークスペース ファイルの場合 - ワークスペースのすべてのプロジェクトがインポートされます。 ディレクトリの場合 - そのディレクトリとサブディレクトリにあるすべての .wpj プロジェクトがインポートされます。 | -import を使用するとき、 例: -wpj "MyProject.wpj" -wpj "MyWorkspace.wsp" -wpj "c:\DevelRootDir" |
C/C++test for Eclipse ワークベンチでプロジェクトをテストするためのオプション
オプション | 目的 | 説明 |
---|---|---|
| 使用する Eclipse ワークスペースの場所を指定します。 | デフォルトは現行ユーザーの関連ディレクトリです。 |
| テストするワークスペース リソースへのパスを | 複数のリソースを指定する場合は、このオプションを複数回使用します。 英数字以外の文字またはスペースがリソース パスに含まれる場合、値を引用符で囲みます。
チーム プロジェクト設定ファイル (PSF ファイル) は、SVNおよび他のソース管理システムについてサポートされます(インストールされた Eclipse プラグインの機能によります)。 たとえ絶対パスであっても、パスは -data パラメーターで指定されたワークスペースに相対です。 例:
|
注意
- 有効なコマンドライン オプションのリストを参照するには、
cpptestcli -help
を実行してください。 cpptestcli
は、指定されたグループ マネージャーとアーキテクトにレポートを自動的に送信します。このレポートには、チームとプロジェクトのすべてのエラーが記載されると共に、エラー箇所を担当した開発者名も記載されます。エラーが発見されなかった場合でも、オプション ファイルでreport.mail.on.error.only=true
を設定していない限り、レポートは送信されます。- 適切な前提条件が満たされた場合、
cpptestcli
は各開発者に担当部分のエラー/ 結果だけのレポートを送信します。開発者の担当部分でエラーがレポートされなかった場合、その開発者にはレポートが送信されません。
設定ファイル (オプション ファイル)
設定ファイルをコマンドラインで渡して、レポート、タスクの割り当て、ライセンスといったオプションを制御することができます。ローカル設定ファイルを使用すると、以下のことが可能です。
- プロジェクトごとに異なる設定を使用することができます。
- 必要に応じてチーム全体の設定を拡張したり上書きすることができます (例えばローカルパスに関連する設定など)。
- GUI を開かずに設定を変更できます。
プロジェクトごとにオプション ファイルを作成し、-settings
オプションを使ってどのファイルを使用するかを指定できます。
設定ファイルの詳細および利用可能なオプションの一覧は、「設定ファイルでの指定」を参照してください。