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

環境固有の構成

Microsoft ActiveSync での単体テストの自動化

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

  • テスト実行モジュールのターゲットまたはエミュレーターへのコピー  
  • テスト実行モジュールの遠隔開始  
  • 単体テスト終了の検出  
  • ターゲットまたはエミュレーターからホストへのログ ファイルのコピー  
  • エミュレーターの起動  

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

ActiveSync を通信チャネルとして使用する単体テストをセットアップするために、"Build and run test executable for Windows Mobile/CE using ActiveSync" テスト フローが用意されています。フローの CustomStep で ASconnector が呼び出されます。テスト環境に合わせて CustomStep をカスタマイズすることもできます。

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

単体テストが実行される前に、ターゲット デバイスまたはエミュレーターが適切にホストと接続され、ActiveSync が実行されていることを前提とします。

このようなシナリオで使用できる 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

ASconnector が ActiveSync 接続を待機する時間を指定します (単位: ミリ秒)。
0 に設定すると、タイムアウトしません。デフォルト値は 8000 ミリ秒です。

--targetArch=<arch>

--ta

ターゲット プラットフォームのアーキテクチャです。次のいずれかを指定します。
arm、mips、sh、x86 または emu (エミュレーターの場合)

--printHelp

--help

オプションの説明を表示します。

--testExecutableCmd <...>

N/A

このオプションより後ろのコマンド ラインが実行モジュールに直接渡されます。

フローは以下のステップに従って実行されます。

  1. ターゲット実行モジュールがホストからターゲットにコピーされます。  
  2. 同じバージョンの実行モジュールがすでにターゲットにコピー済みである場合 (前回のテスト フローの実行中にコピーされた場合など)、実行モジュールはコピーされません。コピー済みであるかどうかは、タイムスタンプによって判断されます。  
  3. ターゲット実行モジュールが開始され、テストが始まります。  
  4. テストが終了すると、ログ ファイルがターゲットからホストにコピーされます。  
  5. 一時ログ ファイルが削除されます。  

単体テスト

次のテスト コンフィギュレーションは、Windows Mobile/Windows CE アプリケーションでの使用を目的として作成されたものです。

  • Build and Run Test Executable for Windows Mobile or Windows CE Using ActiveSync Windows Mobile/Windows CE のためのテスト用実行モジュールをビルドして実行します。ActiveSync を通信チャネルとして使用します。このフローを使用するには、ホストとターゲットの両方のマシンが ActiveSync をサポートしている必要があります。 ActiveSync がサポートする方法で接続された実際のデバイス、またはエミュレーターをターゲットとして使用できます。詳細については 「Microsoft ActiveSync での単体テストの自動化」を参照してください。  
  • Build Test Executable for Windows Mobile Windows Mobile/Windows CE のためのテスト用実行モジュールをビルドします。ファイル通信を使用します。デフォルトでは、"./Storage Card/cpptest_results.tlog" および "./Storage Card/cpptest_results.clog" にそれぞれテスト結果とカバレッジ結果が格納されます。  
  • Build and run test executable for Pocket PC Windows Mobile Pocket PC のためのテスト用実行モジュールをビルドして実行します。エミュレーターで Storage Card としてホスト ディレクトリを共有し、ファイル通信を使用します。デフォルトでは "./Storage Card/cpptest_results.tlog" および "./Storage Card/cpptest_results.clog" にそれぞれテスト結果とカバレッジ結果が格納されます。 システム ブート後の自動スタートを容易にするために、テスト用実行モジュールは "2577" というサブディレクトリに生成されます。Windows Mobile SDK の PPC_USA.BIN イメージが使用されます。実行が終了したら、エミュレーターをクローズしてください。すると C++test が結果を読み込み、表示します。  
  • Build and run test executable for Smartphone  Windows Mobile Smartphone のテスト用実行モジュールをビルドして実行します。エミュレーターで Storage Card としてホスト ディレクトリを共有し、ファイル通信を使用します。デフォルトでは "./Storage Card/cpptest_results.tlog" および "./Storage Card/cpptest_results.clog" にそれぞれテスト結果とカバレッジ結果が格納されます。 システム ブート後の自動スタートを容易にするために、テスト用実行モジュールは "2577" というサブディレクトリに生成されます。Windows Mobile SDK の SP_USA_GSM_QVGA_VR.BIN イメージが使用されます。実行が終了したら、エミュレーターをクローズしてください。すると C++test が結果を読み込み、表示します。  

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

  • emulator_path  エミュレーターの実行モジュールへのパス。デフォルトは "C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" です。  
  • platform_dir 実行モジュールが生成されるサブディレクトリの名前。デフォルトは "2577" です。  
  • Image_path エミュレーターの Windows CE イメージ ファイルへのパス。デフォルトは (Pocket PC の場合) "C:\Program Files\Windows Mobile 5.0 SDK R2\PocketPC\DeviceEmulation\0409\PPC_USA.BIN" です。  
  • Additional_parameters  エミュレーターに渡すコマンドライン引数。デフォルトは (Pocket PC の場合) "/VMID {d1a7b239-28d5-4485-9b8c-5764e3dc79b6} /memsize 128" です。  
  • skin skin xml ファイルへのパス。デフォルトは (Pocket PC の場合) "C:\Program Files\Windows Mobile 5.0 SDK R2\PocketPC\DeviceEmulation\Pocket_PC\Pocket_PC.xml" です。  

詳細情報

単体テスト ケースの生成および実行に関する全般的な情報については、「単体テスト」を参照してください。  

アプリケーション検証

次のテスト コンフィギュレーションは、Windows Mobile/Windows CE アプリケーション検証モードでの使用を目的として作成されたものです。

  • Build and Run Application with Memory Monitoring for Windows Mobile or Windows CE Using ActiveSync Windows Mobile/Windows CE アプリケーションをビルドして実行します。ActiveSync を通信チャネルとして使用します。このフローを使用するには、ホストとターゲットの両方のマシンが ActiveSync をサポートしている必要があります。 ActiveSync がサポートする方法で接続された実際のデバイス、またはエミュレーターをターゲットとして使用できます。詳細については 「Microsoft ActiveSync での単体テストの自動化」を参照してください。  
  • Build and Run Application with Memory Monitoring for Pocket PC Windows Mobile/Windows CE アプリケーションをビルドして実行します。エミュレーターで Storage Card としてホスト ディレクトリを共有し、ファイル通信を使用します。デフォルトでは "./Storage Card/cpptest_results.tlog" および "./Storage Card/cpptest_results.clog" にそれぞれテスト結果とカバレッジ結果が格納されます。 システム ブート後の自動スタートを容易にするために、テスト用実行モジュールは "2577" というサブディレクトリに生成されます。Windows Mobile SDK の PPC_USA.BIN イメージが使用されます。実行が終了したら、エミュレーターをクローズしてください。すると C++test が結果を読み込み、表示します。  
  • Build and Run Application with Memory Monitoring for Smartphone Windows Mobile Smartphone アプリケーションをビルドして実行します。エミュレーターで Storage Card としてホスト ディレクトリを共有し、ファイル通信を使用します。デフォルトでは "./Storage Card/cpptest_results.tlog" および "./Storage Card/cpptest_results.clog" にそれぞれテスト結果とカバレッジ結果が格納されます。 システム ブート後の自動スタートを容易にするために、テスト用実行モジュールは "2577" というサブディレクトリに生成されます。Windows Mobile SDK の SP_USA_GSM_QVGA_VR.BIN イメージが使用されます。実行が終了したら、エミュレーターをクローズしてください。すると C++test が結果を読み込み、表示します。  

下の 2 つのフローは Microsoft Device Emulator での使用を目的としています。他の単体テスト フローと同様に、これらのフローをカスタマイズできます。

詳細情報

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

  • No labels