このセクションの内容:

概要

以下のセクションでは、Windows Mobile を使ってコンパイル/ビルドすることを目的としたコードに対して、静的解析と単体テストを実行する方法について説明します。

Visual Studio 対応 C++test は、Window Mobile 5 および 6 の Mobile SDK を直接サポートします。その他のインストールは必要ありません。

Microsoft eMbedded Visual C++ 4.0 プロジェクトのテストには、Eclipse 対応の C++test スタンドアロン版を使用してください。

プロジェクトの作成と構成

このセクションでは、Windows Mobile 用 Visual Studio プロジェクトを C++test でテストするために構成する方法について説明します。

Windows Mobile/Windows CE 用に正しく構成された Visual Studio プロジェクトでは、C++test 静的解析のための特別な設定は必要ありません。

単体テストの場合、ランタイム ライブラリが必要です。ランタイム ライブラリは、C++test で自動的にビルドすることも、Visual Studio IDE または Makefile から手動でビルドすることもできます。デフォルトは自動ビルドです。ランタイム ライブラリの詳細については 「 C++test ランタイム ライブラリのビルド」を参照してください。

プロジェクトの設定が正しいかどうかを検証するには、次の操作を行います。

  1. ソリューション エクスプローラーで、設定を変更するプロジェクトのノードを右クリックし、ショートカット メニューの [Parasoft] > [プロパティ] をクリックします。  
  2. 適切なコンパイラの種類が指定されていることを確認します。この場合は [Microsoft Visual C++ x.x for Windows Mobile] です。  
  3. 例えば Debug や Release など、代わりとなるプロジェクト構成を使用したい場合、[コンフィギュレーション] ドロップダウン リストから選択します。  

C++test プロジェクトのプロパティの詳細については、「オプション設定の参照と変更 」を参照してください。

静的解析

このセクションでは、Windows Mobile を使ってコンパイル/ビルドすることを目的としたコードに対して静的解析を実行する方法について説明します。

静的解析はピュア コードに対してのみ実行されるため、テスト オブジェクトのリンクと実行に関連する設定は、静的解析では必要ありません。ただし、コンパイラ設定はすべて適切にセットする必要があります。

静的解析を実行するには、次の操作を行います。

  1. ソリューション エクスプローラーで、テストするリソースのノードを選択します。1 つのファイル、複数のファイル、またはプロジェクト全体を選択できます。  
  2. 次のいずれかの操作を行って、解析を開始します。  


解析が開始すると、C++test は解析オプションを収集して解析スコープを計算した後、静的解析を開始します。解析が終了すると、サマリ ダイアログが表示され、C++test の出力パネルに静的解析の結果が表示されます。この時点で、結果をレビューして問題に対処するだけでなく、静的解析についてのレポートを生成することもできます。詳細については次のセクションを参照してください。

静的解析の実行に関する全般的な情報については 「静的コード解析」 および 「フロー解析」を参照してください。

実行時テスト

このセクションでは、実行時テストを構成して実行する方法について説明します。

このセクションの内容:

環境固有の構成

Microsoft ActiveSync を使って単体テストを自動化する

単体テストの最中に通信チャネルとして Microsoft ActiveSync を使用するのを簡単にするために、ASconnector コマンドライン ツールが用意されています。 ASconnector は次のタスクを自動化します。

ASconnector の詳細については 「ASconnector を使って単体テストを実行する」を参照してください。

"Build and run test executable for Windows Mobile/CE using ActiveSync" テスト フローは、 通信チャネルとして ActiveSync を使用する単体テストの設定を容易にするために特に設計されたものです。ASconnector はこのフローの CustomStep で起動されます。CustomStep をさらにカスタマイズしてテスト環境に合わせることができます。

このテスト フローは、実際のターゲット デバイスだけでなくエミュレーターを使った単体テストもサポートします。

ここでは、ターゲット デバイス (またはエミュレーター) がホストに適切に接続していて、単体テストの実行前に ActiveSync が起動しているものとします。この接続は ASconnector によって使用されます。

次のコードはCustomStep の例であり、このシナリオで使用することができます。

<CustomStep
	id="run_test"
	label="Running test executable..." 
	commandLine="&quot;ASconnector.exe&quot; 
		&quot;--
	te=${cpptest:testware_loc}\${project_name}Test.exe&quot;
		&quot;--ta=arm&quot; 
		--testExecutableCmd 
		--start-after=${cpptestproperty:test_case_start_number}" 
		workingDir="${cpptest:testware_loc}"
/>


ASconnector を使って単体テストを実行する

ASconnector を使用すると、Microsoft ActiveSync を通信チャネルとして使ってターゲット デバイスまたはエミュレーターでの単体テストを自動化することができます。

ASconnector は次のオプションを使ってカスタマイズすることができます。

ASconnector [options]... [--ExecutableCmd ...]


オプションと書式

短縮系

説明

--testExecutable=<path>

--te

ホストでのターゲットの実行モジュールへのパスをホスト マシンで指定します。

このオプションは必須です。

--logFile=<target_path>

--lf

ターゲット デバイスでのログ ファイルへのパスを指定します。ログ ファイルは、テスト用実行モジュールの実行が完了した後にホストにダウンロードされます。デフォルトでは、ログ ファイルはホストの作業ディレクトリにダウンロードされます。ダウンロードされる場所は  --logDir オプションで変更できます。カンマで区切ったファイルのリストを発行できます。このオプションを指定しない場合、標準のログ ファイルである cpptest_results.tlog および cpptest_results.clog が処理されます。

--logDir=<path>

--ld

ActiveSync の接続を ASconnector が待機する時間を指定します。単位はミリ秒です。

0 に設定した場合、タイムアウトは起こりません。

デフォルトは 8000 ミリ秒です。

--targetArch=<arch>

--ta

ターゲット プラットフォームのアーキテクチャ。次のいずれかを指定できます。

arm mips sh x86 emu  (エミュレーター)

--printHelp

--help

オプションについての説明が表示されます。

--testExecutableCmd <...>

N/A

このオプションの後、残りのコマンドラインは直接ターゲット実行モジュールに渡されます。

プログラム フローは次のステップから構成されます。

  1. ターゲット実行モジュールがホストからターゲットにコピーされます。  
  2. 同じバージョンのターゲット実行モジュールがすでにコピーされていることをプログラムが検出した場合 (例えば以前のテスト フローの実行でコピー済みである場合など)、ターゲット実行モジュールはコピーされません。同じバージョンかどうかを調べるために、ターゲット実行モジュールのタイムスタンプがチェックされます。  
  3. ターゲット実行モジュールが起動し、テストが開始します。  
  4. テストが完了すると、ログ ファイルがターゲット システムからホストにコピーされます。  
  5. 一時ログ ファイルが削除されます。  

単体テスト

次のテスト コンフィギュレーションは、Windows Mobile/Windows CE アプリケーションでの利用に特化したものです。

最後の 3 つのフローは、Microsoft Device Emulator での使用を目的としています。Windows Mobile/Windows CE テスト フロー定義で使用される次のプロパティをカスタマイズして、特定の環境に合ったフロー定義にすることができます。

 C++test を使って単体テスト ケースを生成して実行する方法の詳細については 「テストの作成と実行」を参照してください。  

アプリケーション監視

次のテスト コンフィギュレーションは、アプリケーション監視モードでの Windows Mobile/Windows CE の使用に特化したものです。

最後の 2 つのフローは Microsoft Device Emulator での使用を目的としたものです。ほかの単体テスト フローと同じようにカスタマイズすることができます。

アプリケーション監視および実行時エラー検出の実行に関する全般的な情報については 「実行時エラー検出」を参照してください。