方法 : スマート デバイスの単体テストの実行中にデバッグする
更新 : 2007 年 11 月
テスト コードがデスクトップ コンピュータではなくデバイスまたはエミュレータで実行されるので、スマート デバイスの単体テストでは自動デバッグはサポートされていません。[デバッグ] メニューの [デバッグ開始]、[テスト ビュー] ウィンドウの [選択範囲のデバッグ]、または [テスト リスト エディタ] の [選択されたテストをデバッグ] を選択しても、テストが実行されるだけで、テストのデバッグは行われません。ここでは、実行しているスマート デバイスの単体テストにデバッガを手動でアタッチすることでデバッグを行う方法について説明します。
以下の手順では、スマート デバイスの単体テストを作成し、デバッグ用にデバイスを準備し、テストにブレークポイントを追加して、テストをデバッグします。
メモ : |
---|
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。 |
スマート デバイスの単体テストの実行中にデバッグするには
テストするスマート デバイス アプリケーションと、それをテストするためのスマート デバイス単体テストを作成します。
詳細については、「チュートリアル : スマート デバイス単体テストの作成と実行」を参照してください。
デバイスでのマネージ デバッグを有効にするには、Visual Studio リモート レジストリ エディタを使用して、デバイスのレジストリに次の項目を作成します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework の下に Managed Debugger という名前の新しいキー。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\Managed Debugger の下に、名前が AttachEnabled で値が 1 の新しい DWORD 値。
スマート デバイスの単体テストに System.Diagnostics.Debugger.Break() というステートメントを追加して、ブレークポイントを設定します。
メモ : コードに設定したブレークポイントがヒットするのは、ブレークポイントがこの System.Diagnostics.Debugger.Break() ステートメントより後にある場合のみです。
テストを開始します。
これを行うには、[テスト ビュー] ウィンドウで、実行するテストを右クリックし、[選択範囲の実行] をクリックします。
単体テストに追加したブレークポイントにテスト ホストがヒットするのを待ちます。ヒットが発生すると、デバイスに "SmartDeviceTestHost.exe で、ユーザーによる中断が発生しました" というメッセージが表示されます。
スマート デバイスのテスト ホスト プロセスにアタッチします。
[デバッグ] メニューの [プロセスにアタッチ] をクリックします。
[トランスポート] を [スマート デバイス] に変更します。
[修飾子] を、テストを実行しているデバイスに変更します。
[選択可能なプロセス] ボックスの一覧で SmartDeviceTestHost.exe をクリックします。
[アタッチ] をクリックします。
Visual Studio が、System.Diagnostics.Debugger.Break() ステートメントで実行を一時停止しているプロセスにアタッチします。[デバッグ] メニューの [続行] をクリックするか、F5 キーを押して、実行を次のブレークポイントまで続行させます。
メモ : デバッグが完了したら、System.Diagnostics.Debugger.Break() ステートメントとマネージ デバッガのレジストリ キーを削除します。削除しないと、テストを実行するたびにブレークポイント ダイアログ ボックスが表示されます。