このセクションでは、 「コマンドライン インターフェイス (cli)」で説明されている C/C++test コマンドライン インターフェイス (cpptestcli
) からテストを実行する方法について説明します。
このセクションの内容
コマンドライン モードを使用するには、コマンドライン インターフェイスのライセンスが必要です (C/C++test Automation Edition に付属)。
C/C++test で利用できるコマンド ライン インターフェイスのライセンスは 2 つあります。
|
コマンドラインからテストを実行するには、C/C++test のインストール ディレクトリをパスに設定する必要があります。 パスに設定しない場合は、c:\parasoft\c++test\cpptestcli.exe
のように絶対パスで cpptest を実行する必要があります。C/C++test でコードをテストするには、Visual Studio プロジェクトにコードを追加する必要があります。「プロジェクトの作成」を参照してください。
cpptestcli
から各開発者の作業に関連したエラー/ 結果だけを開発者に送信するには、次のいずれかの条件を満たす必要があります。
「ソース管理システムのデータに基づいてコード作成者を算定するように C/C++test を設定している」かつ「ソース管理システムを使用している」かつ「ソース管理システムでの各開発者のユーザー名とメール ドメインが開発者の電子 メール アドレスに一致している」 ( メール ドメインはオプション ファイルおよび「-localsettings %LOCALSETTINGS_FILE%
」で解説の -localsettings
オプションを使って指定)
「ローカル ユーザーに基づいてコード作成者を算定するように C/C++test を設定している」かつ 「ユーザー名およびメール ドメインが開発者の電子メール アドレスに一致している」 (メール ドメインはオプション ファイルおよび「-localsettings %LOCALSETTINGS_FILE%
」で解説の -localsettings
オプションを使って指定 )」
Parasoft C/C++test Professional には 2 つのユーザー モードがあります。インタラクティブにデスクトップで C++test を 使用する「GUI モード」とコマンドライン インターフェイスを介して実行する「コマンドライン」モードです。コマンドライン インターフェイスは Automation Edition の標準機能です。
コマンドライン モードは通常、定期的/ 継続的なビルドまたは自動回帰テストのインフラストラク チャと連携して、定期的/ 継続的なコード解析とテストを実行するために使用します。C/C++test の コマンドライン インターフェイスは、 Visual Studio ソリューション全体、またはソリューションの一部である 1 つ以上のプロジェクトまたはソースファイルに対して実行できます。 コマン ドライン インターフェイスの実行の一部として、C/C++test は次の 1 つ以上のことを実行します。
単体テストの実行(任意のソリューションで)
実行の一部として、C/C++test は (サポートされている場合) SCM クライアントを使って SCM システムから自動的にファイルの変更情報を取得します。そしてコード解析と実行されたテストの結果に基づいて特定の個人のためのタスクを生成します。
C++test 固有の実行オプションはテスト コンフィギュレーションと環境設定によって制御されま す。
テスト コンフィギュレーションについては、C/C++test のビルトイン テスト コンフィギュレーションをベースにして作成することも、GUI モードで新規に作成することもできます。ビルトイン テスト コンフィギュレーションは、そのまま使用するのではなく、ユーザー定義テスト コンフィギュレーションのためのテンプレートとして利用することを推奨します。
環境設定は C/C++test GUI から設定できます。ほとんどの環境設定は、コマンドライン インターフェイスの呼び出しにパラメーターとして渡される構成ファイルからも設定できます。設定ファイルの詳細については「ローカル設定ファイル ( オプション ファイル)」 を参照してください。GUI で設定した C/C++test の環境設定はデフォルトで適用されます。GUI の設定は、コマン ドライン モードで使用される構成ファイルの値で個別に上書きできます。そのため、ユーザーはす べてのコマンドライン実行で使用される基本的な環境設定を保持しつつ、必要に応じて特定のテスト コンフィギュレーションの特定の実行用に設定ファイルを用意できます。たとえば、テスト実行ごと に異なる情報をレポートに含める場合や、レポート名や E-mail ヘッダーなどのレポートの E-mail オプションを変更する場合などにこの方法が役立ちます。
C/C++test の環境設定を見るには、[Parasoft] メニューの [設定] をクリックします。次の設定から開始します。
localhost
」と入力します。Team Server のデフォルト ポート (18888) をインストール時に変更したのでない限り、[ ポート番号] は変更しないでください。[接続のテスト] ボタンをクリックして接続を検証します。レポート: 次のオプションはデフォルトで有効であり、このオプションから開始するのが適しています。
詳細な開発者レポート (タスクの詳細を含む)
作成者ごとのタスクの概要(概要の表)
コマンドライン モードでフォーマットされたレポートを生成する
抑制の詳細 (静的解析のみに適用される)
E-mail: レポートを E-mail で送信するための設定です。C/C++test テスト マシンからアクセスできるメール サーバー上にある、既存の E-mail アカウントを指定する必要があります。
レポート > E-mail 通知:
必要に応じて [レポートを E-mail で送信する] を有効にします。この設定に関係なく、レポートは今後の参照のために常に Team Server にアップロードされます (コマンドライン インターフェイス オプションによって制御されます)。メールの配信には上記の [E-mail] の設定が使用されます。
マネージャー レポートには、C/C++test が生成したすべてのテスト結果が含まれます。開発者レポートには、個々の開発者のテスト結果だけが含まれます。適切なオプションを有効にし、E-mail アドレスを指定します。
「テスト コンフィギュレーションの設定」の説明に従ってユーザー定義テスト コンフィギュレーションを作成します。
「ローカル設定ファイル (オプション ファイル)」の説明にあるようにオプション ファイルを作成します。
たとえば、コマンドは次のようになります。
cpptestcli -solution "c:\MySolution" -resource "ProjectToTest" -config builtin://ShouldHaveRules -publish -localsettings acme_policy.settings
コマンドラインからテストを実行するための全般的な手順は次のとおりです。
cpptestcli
ユーティリティを使用し、コマンドライン モードでテストを実行します。利用できるすべてのオプションの一覧については「コマンドライン オプション」を参照してください。主要なオプションは次のとおりです。C/C++test は、テスト対象のソース ファイルがヘッダーをインクルードしていない限り、ヘッダーを直接テストしません。詳細については「ヘッダー ファイルを解析するには ? どのファイルが解析されるのか ?」 を参照してください。 |
C/C++test は、インスタンス化された関数テンプレートとインスタンス化されたクラス テンプレートのメンバーに対して静的解析と単体テストを実行できます。詳細は「C++test でのテンプレート関数のサポート」を参照してください。 |
|
cpptestcli
の一般的な書式は次のとおりです。
cpptestcli [OPTIONS]
通常、cpptestcli の呼び出しには次の書式を使用します。
一部のファイルを解析/ テストから除外する場合 (たとえば自動生成ファイルを静的解析の対象から外す場合など)、解析/ テストの対象から外すリソースを指定できます。詳細については「テストから除外するリソースの指定」を参照してください。この設定を GUI で行うと、GUI からでもコマンドラインからでも、このプロジェクトのすべてのテストに対して設定が適用されます。 |
利用できる cpptestcli
のオプションは次のとおりです。
-config
%CONFIG_URL% -
実行する テスト コンフィギュレーションを %CONFIG_URL%
で指定します。
プロジェクトをインストールするときを除き、このパラメーターは必須です。%CONFIG_URL%
は、 URL 、ビルトイン テストコンフィギュレーションの名前、またはローカル ファイルへのパスとして解釈されます。例:-config "mylocalconfig.properties"
-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
- ヘルプ情報を表示します。テストは実行しません。-localsettings
%LOCALSETTINGS_FILE% -
オプション ファイル %LOCALSETTINGS_FILE%
からグローバル設定を読み込みます。グローバル設定には、Parasoft DTP、電子メール、Team Server などの設定があります。-nobuild
- テスト前にプロジェクトをビルドしないようにします。テストの実行前にすでにプロジェクトをビルドしている場合、このオプションを使用します。-fail
- 違反またはセットアップの問題がレポートされた場合、ゼロ以外の終了コードを返してビルドを失敗させます (プロセスが失敗したときに返される終了コードについては「コマンド ラインの終了コード」を参照)。-publish
- レポートを DTP にパブリッシュします。DTP の場所は、GUI またはオプション ファイルで指定できます(「DTPとの接続」を参照)。-publishteamserver
- レポートを Team Server にパブリッシュします。Team Server の場所は、GUI またはオプション ファイルで指定できます (-localsettings %LOCALSETTINGS_FILE%
を参照)。-report
%REPORT_FILE% -
%REPORT_FILE%
で指定した XML レポートと HTML レポートを生成します。拡張子が異なる、同じ名前のレポートが、同じディレクトリに生成されます(report.format オプションを指定した場合、PDF 形式またはカスタ ム形式のレポートを生成できます)。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
- 詳細なテスト進行状況の情報を表示します。
-disablescm
- ソリューションとプロジェクトをソース管理情報から切り離します。-solutionConfig
%SOLUTION_CONFIG_N
AME% -
ソリューションのビルドおよび解析に使用するソリューション構成を指定します。 Debug と Release
は一般的な名前です。スイッチを省略する場合、アクティブ構成が使用されます。アクティブ構成は突然変わる可能性があるため、ソリューション構成を指定することを強く推奨します。-targetPlatform %TARGET_PLATFORM_N
AME% -
ソリューションのビルドおよび解析に使用するターゲットプラットフォームを指定します。 Any CPU とx86 は一般的な名前です。省略する場合、アクティブ構成が使用されます。アクティブ構成は突然変わる可能性があるため、ターゲットプラットフォームを指定することを強く推奨します。-appconsole stdout|% OUTPUT_FILE%
- C/C++test のコンソール出力を標準出力または %OUTPUT_FILE%
ファイルにリダイレクトします。-appconsole stdout
(標準出力にリダイレクトされるコンソール)-appconsole console.out
(console.out file ファイルにリダイレクトされるコンソール)-list-compilers
- 有効なコンパイラの種類の値を出力します。 このオプションは -solution
とともに使用する必要があります。
-list-configs - 有効なテスト コンフィギュレーションの値を出力します。 このオプションは -solution
とともに使用する必要があります。
-bdf
- 入力スコープを収集するための既存のビルド データ ファイル (.bdf) または別のプロジェクト定義ファイルへのパスを指定します。ビルド データ ファイルの作成については「cpptestscan または cpptesttrace を使ってビルド データ ファイルを作成する」を参照してください。このオプションは、静的解析を実行する場合、CMake ビルド システムによって生成されるJ SON フォーマットのファイルもサポートします。単体テスト実行での -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"
-useenv
- Visual C++ のコンパイルで、[オプション] ダイアログのプロジェクトのオプションの [VC++ ディレクトリ] で指定された設定ではなく、環境変数 PATH、INCLUDE、および LIB を使用します。-clearcmc
- Visual Studio のコンポーネント モデル キャッシュを消去します。オプション | 目的 | 説明 |
---|---|---|
| 使用するソリューションファイルの場所を指定します。使用するソリューションファイルの場所を指定します。 | N/A使用するソリューションファイルの場所を指定します。 |
| テストするワークスペース リソースへのパスを | 複数のリソースを指定する場合は、このオプションを複数回使用します。 英数字以外の文字またはスペースがリソース パスに含まれる場合、値を引用符で囲みます。
例えば、C++test ATM サンプルプログラム中のファイル または - その他の例:
|
|
ローカル設定ファイルをコマンドラインで渡して、レポート、タスクの割り当て、ライセンスといったオプションを制御することができます。ローカル設定ファイルを使用すると、以下のことが可能です。
プロジェクトごとにオプション ファイルを作成し、-localsettings
オプションを使ってどのファイルを使用するかを指定できます。
ローカル設定ファイルの詳細および利用可能なオプションの一覧は、「ローカル設定の指定」を参照してください。