方法 : ASP.NET ソリューションでのテスト中にデバッグする

更新 : 2007 年 11 月

ASP.NET Web プロジェクトのテストに使用している単体テストと Web テストのどちらも、デバッグできます。また、テストの実行中に ASP.NET の製品コードをデバッグできます。

ただし、ASP.NET コードをテストしている場合、テスト コードは、VSTestHost プロセスの制御下にある通常の方法では実行されません。この場合、IIS プロセスで実行されるか、または Web サイトがファイル ベースの場合、ASP.NET 開発サーバー プロセスで実行されます。一般的なテスト プロセスとは異なる方法でテストが実行されるため、[テスト ビュー] ウィンドウの [選択範囲のデバッグ] またはテスト リスト エディタの [選択されたテストをデバッグ] をクリックすると、テスト中にはデバッグが実行されません。

同様に、デバッグが有効ではない場合、ASP.NET の製品コードはステップ インできません。また、デバッガは ASP.NET 開発サーバーまたは IIS プロセスにアタッチされます。

次の各手順では、[新しい Web サイト] ダイアログ ボックスを使用して ASP.NET Web サイト プロジェクトを作成します。このダイアログ ボックスでは、[場所] ボックスで、Web サイトの場所を選択します。この選択により、後でデバッガをアタッチするプロセスと、ASP.NET ソリューションでのテストの実行中にデバッグを行う手順が決まります。選択できるのは、IIS と ASP.NET 開発サーバーです。

  • IIS で実行中の場合のデバッグ

  • ASP.NET 開発サーバーで実行中の場合のデバッグ

IIS で実行中の場合のデバッグ

次の手順では、デバッガをプロセスにアタッチします。プロセス名は、使用するオペレーティング システムによって異なります。これは、インストールされる IIS のバージョンがオペレーティング システムによって異なるからです。次の表に、各オペレーティング システムで使用されるプロセスを示します。第 1 列目に示すオペレーティング システムに対し、[プロセスにアタッチ] ダイアログ ボックスの [選択可能なプロセス] セクションの第 3 列目で指定されたプロセス名を使用します。

オペレーティング システム

ホスト プロセス

ASP.NET プロセス名

Windows Server 2003

IIS 6.0

w3wp.exe

Windows XP

IIS 5.1

aspnet_wp.exe

Windows 2000

IIS 5.0

aspnet_wp.exe

IIS で ASP.NET テストを実行中にデバッグするには

  1. テスト対象の ASP.NET Web サービス プロジェクトと、それをテストする ASP.NET 単体テストを作成します。

    この Web サイト プロジェクトを作成する場合は、[新しい Web サイト] ダイアログ ボックスの [場所] で [HTTP] または [FTP] を選択します。これにより、ホスト プロセスは IIS になります。

    詳細については、「方法 : ASP.NET 単体テストを作成する」を参照してください。

  2. ASP.NET Web プロジェクトでデバッグを有効にします。これを行うには、プロジェクトの Web 構成ファイルを編集します。プロジェクトに Web.config ファイルが既に存在する場合は、手順 4 に進みます。Web.config ファイルがない場合は、ここで追加します。ソリューションの Web サイト プロジェクトを右クリックし、[新しい項目の追加] をクリックします。

    [新しい項目の追加] ダイアログ ボックスが表示されます。

  3. [新しい項目の追加] ダイアログ ボックスの [Web 構成ファイル] をクリックし、[追加] をクリックします。

    Web.config ファイルが Web サイト プロジェクトに追加されます。Web.config ファイルの使用方法の詳細については、「方法 : .NET アプリケーションのデバッグを有効にする」を参照してください。

  4. Web.config ファイルで、<compilation debug="false"/> という行を <compilation debug="true"/> に変更します。

  5. (省略可能) ASP.NET 単体テストと、Web サイトの製品コードにブレークポイントを設定します。

  6. デバッガを IIS プロセスにアタッチします。これを行うには、[デバッグ] をクリックし、[プロセスにアタッチ] をクリックします。

    [プロセスにアタッチ] ダイアログ ボックスが表示されます。

  7. [選択可能なプロセス] の下で、デバッガをアタッチするプロセス名を探します。

    必要なプロセスが表示されないときは、その他の実行中のプロセスも表示できます。これを行うには、[すべてのユーザーからのプロセスを表示する] と [すべてのセッションのプロセスを表示する] をオンにします。

  8. [選択可能なプロセス] の下にあるプロセス名をクリックし、[アタッチ] をクリックします。

    アタッチする必要があるプロセスが実行されていないときは、[キャンセル] をクリックし、プロセスを起動します。これを行うには、ソリューション エクスプローラで Web サイト プロジェクトを右クリックし、[ブラウザで表示] をクリックします。次に [デバッグ] をクリックし、もう一度 [プロセスにアタッチ] をクリックすると、プロセスが起動し、[選択可能なプロセス] に表示されます。プロセス名をクリックし、[アタッチ] をクリックします。

  9. テストを開始します。

    これを行うには、[テスト ビュー] ウィンドウのデバッグ対象のテストを右クリックし、[選択範囲のデバッグ] をクリックします。

    ms243172.alert_note(ja-jp,VS.90).gifメモ :

    テストを実行する場合は、[選択範囲のデバッグ] ではなく、[選択範囲の実行] を選択します。相違点は、[選択範囲のデバッグ] を選択すると、デバッガはテストが完了すると自動的にデタッチされる一方、[選択範囲の実行] を選択すると、デバッガはアタッチされたままになることです。デバッグ中にテストを何度も実行する必要があり、そのたびにプロセスをアタッチし直すのを回避したい場合には、[選択範囲の実行] が便利です。[選択範囲の実行] を選択した場合、デバッグが完了してプロセスをデタッチするには、[デバッグ] メニューの [デバッグの停止] をクリックするか、Shift キーを押しながら F5 キーを押します。

ASP.NET 開発サーバーで実行中の場合のデバッグ

テストを ASP.NET 開発サーバーで実行中にデバッグするには

  1. テスト対象の ASP.NET Web サービス プロジェクトと、それをテストする ASP.NET 単体テストを作成します。

    この Web サイト プロジェクトを作成する場合は、[新しい Web サイト] ダイアログ ボックスの [場所] で [ファイル システム] を選択します。これにより、ホスト プロセスは ASP.NET 開発サーバーになります。

    詳細については、「方法 : ASP.NET 単体テストを作成する」を参照してください。

  2. ASP.NET Web プロジェクトでデバッグを有効にします。これを行うには、プロジェクトの Web 構成ファイルを編集します。プロジェクトに Web.config ファイルが既に存在する場合は、手順 4 に進みます。Web.config ファイルがない場合は、ここで追加します。ソリューションの Web サイト プロジェクトを右クリックし、[新しい項目の追加] をクリックします。

    [新しい項目の追加] ダイアログ ボックスが表示されます。

  3. [新しい項目の追加] ダイアログ ボックスの [Web 構成ファイル] をクリックし、[追加] をクリックします。

    Web.config ファイルが Web サイト プロジェクトに追加されます。Web.config ファイルの使用方法の詳細については、「方法 : .NET アプリケーションのデバッグを有効にする」を参照してください。

  4. Web.config ファイルで、<compilation debug="false"/> という行を <compilation debug="true"/> に変更します。

  5. System.Diagnostics.Debugger.Break() ステートメントを ASP.NET 単体テストの先頭に追加します。

    ms243172.alert_note(ja-jp,VS.90).gifメモ :

    コードに設定したブレークポイントがヒットするのは、ブレークポイントがこの System.Diagnostics.Debugger.Break() ステートメントより後にある場合のみです。

    ms243172.alert_note(ja-jp,VS.90).gifメモ :

    C++ では、このステートメントは System::Diagnostics::Debugger::Break() です。単体テストの Visual C++ での使用の詳細については、「ユニット テストと C++」を参照してください。

  6. ASP.NET 単体テストと、Web サイトの製品コードにブレークポイントを設定します。

  7. テストを開始します。

    これを行うには、[テスト ビュー] ウィンドウで、実行するテストを右クリックし、[選択範囲の実行] をクリックします。

  8. テストの実行が開始されるとすぐに、ダイアログ ボックスが表示されます。このダイアログ ボックスには、プログラムでブレークポイントにヒットしたことが通知されます。

  9. [デバッグ] をクリックし、ソリューションが読み込まれている Visual Studio インスタンスを選択し、[はい] をクリックします。

    Visual Studio により、実行が System.Diagnostics.Debugger.Break() ステートメントで一時停止した状態でプロセスにアタッチされます。[デバッグ] メニューの [続行] をクリックするか、F5 キーを押して、実行を次のブレークポイントまで続行させます。

    ms243172.alert_note(ja-jp,VS.90).gifメモ :

    デバッグが完了したら、System.Diagnostics.Debugger.Break() ステートメントを削除してください。削除しないと、テストを実行するたびにブレークポイント ダイアログ ボックスが表示されます。

参照

処理手順

方法 : テストの実行中にデバッグする

方法 : ASP.NET 単体テストを作成する

概念

ASP.NET 単体テストの概要

その他の技術情報

方法 : .NET アプリケーションのデバッグを有効にする