Udostępnij za pośrednictwem


Porady: debugowanie podczas przeprowadzania testu w rozwiązaniu ASP.NET

Można debugować zarówno testy jednostkowe, jak i testy sieci Web, które są używane do testowania projektów sieci Web ASP.NET.Można również debugować kod produkcyjny ASP.NET podczas działania testu.

Jednakże testując kod ASP.NET, kod testu nie działa w typowy sposób, w ramach procesu VSTestHost.Zamiast tego działa w ramach procesu IIS, lub w ramach procesu ASP.NET Development Server jeśli witryna sieci Web jest oparta na plikach.Ponieważ test działa w ramach procesów innych niż typowy proces testowania, wybranie opcji Debuguj testy jednostkowe z menu Test nie powoduje debugowania dopóki test jest uruchomiony.

Podobnie, nie można przejść kodu produkcyjnego, dopóki włączone jest debugowanie i debuger jest dołączony do procesu ASP.NET Development Server lub IIS.

W każdej z poniższych procedur tworzony jest projekt witryny sieci Web ASP.NET używając okna dialogowego Nowa witryna sieci Web.W tym oknie dialogowym można użyć pola listy Lokalizacja, aby wybrać lokalizację witryny sieci Web.Ten wybór określa proces, do którego zostanie później dołączony debuger oraz kroki, które należy zastosować w celu debugowania podczas działania testu w rozwiązaniu ASP.NET.Dwie dostępne opcje to IIS oraz ASP.NET Development Server.

  • Debugowanie podczas wykonywania w ramach IIS

  • Debugowanie podczas wykonywania w ramach ASP.NET Development Server

Debugowanie podczas wykonywania w ramach IIS

W poniższej procedurze debuger zostanie dołączony do procesu.Nazwa procesu zależy od systemu operacyjnego, którego używasz, ponieważ system operacyjny określa wersję IIS, który jest zainstalowany.

Aby debugować podczas wykonywania testu ASP.NET w ramach IIS

  1. Utwórz projekt witryny sieci Web ASP.NET, który ma być testowany oraz test jednostkowy ASP.NET w celu jego przetestowania.

    Po utworzeniu tego projektu witryny sieci Web w oknie dialogowym Nowa witryna sieci Web, wybierz jako Lokalizację HTTP lub FTP.Gwarantuje to, że procesem hosta będzie IIS.

  2. Włącz debugowanie w projekcie witryny sieci Web ASP.NET.Aby to zrobić, należy edytować plik konfiguracji projektu sieci Web.Jeżeli projekt zawiera już plik Web.config, przejdź do kroku 4.Jeśli nie, dodaj go teraz: Otwórz menu skrótów dla projektu witryny sieci Web w swoim rozwiązaniu, a następnie wybierz Dodaj nowy element.

    Wyświetlane jest okno dialogowe Dodaj nowy element.

  3. W oknie dialogowym Dodaj nowy element, wybierz Plik konfiguracji sieci Web, a następnie wybierz Dodaj.

    Plik Web.config zostanie dodawany do projektu witryny sieci Web.Aby uzyskać więcej informacji o sposobach używania plików Web.config, zobacz Porady: Włączanie debugowania aplikacji ASP.NET.

  4. W pliku Web.config zmień wiersz <compilation debug="false"/> na <compilation debug="true"/>.

  5. (Opcjonalnie) Ustaw punkty przerwania w teście jednostkowym ASP.NET i w kodzie produkcyjnym dla witryny sieci Web.

  6. Dołącz debuger do procesu IIS.Aby to zrobić, wybierz Debugowanie, a następnie wybierz Dołącz do procesu.

    Zostanie wyświetlone okno dialogowe Dołącz do procesu.

  7. W Dostępne procesy zlokalizuj nazwę procesu, do którego chcesz dołączyć debuger.

    Jeśli proces, którego potrzebujesz nie jest wyświetlony, możesz wyświetlić więcej procesów, które są uruchomione.Aby to zrobić, sprawdź Pokaż procesy wszystkich użytkowników i Pokaż procesy we wszystkich sesjach.

  8. W Dostępne procesy wybierz nazwę procesu, a następnie wybierz Dołącz.

    Jeśli proces, do którego ma nastąpić dołączenie, nie działa, wybierz Anuluj, a następnie uruchom proces.W tym celu w oknie Eksplorator rozwiązań otwórz menu skrótów dla projektu witryny sieci Web, a następnie wybierz Pokaż w przeglądarce.Następnie wybierz Debugowanie, a następnie jeszcze raz wybierz Dołącz do procesu; proces rozpocznie działanie i zostanie wyświetlony w obszarze Dostępne procesy.Wybierz nazwę procesu, a następnie wybierz Dołącz.

  9. Uruchom test.

    Aby to zrobić, wybierz test, który ma być debugowany w Eksploratorze testów jednostkowych, a następnie z menu Testowanie wybierz Debuguj testy jednostkowe, a następnie Wybrane testy.

    [!UWAGA]

    Podczas wykonywania testów można wybrać Uruchom zaznaczone zamiast Debuguj zaznaczone.Różnica polega na tym, że w przypadku wybrania Debuguj zaznaczone debuger automatycznie odłączy się po zakończeniu testu, ale w przypadku wybrania Uruchom zaznaczone debuger pozostaje dołączony.Może się okazać, że opcja Uruchom zaznaczone jest bardziej użyteczna, zwłaszcza, jeśli planujesz ponownie przeprowadzić test kilka razy podczas debugowania i nie chcesz ponownie podłączać procesu za każdym razem.Jeśli wybrana została opcja Uruchom zaznaczone, aby odłączyć proces po zakończeniu debugowania, wybierz Zatrzymaj debugowanie z menu Debugowanie, albo naciśnij klawisze Shift+F5.

Debugowanie podczas wykonywania w ramach ASP.NET Development Server

Aby debugować podczas wykonywania testu w ramach ASP.NET Development Server.

  1. Utwórz projekt witryny sieci Web ASP.NET, który ma być testowany oraz test jednostkowy ASP.NET w celu jego przetestowania.

    Po utworzeniu tego projektu witryny sieci Web w oknie dialogowym Nowa witryna sieci Web, wybierz jako Lokalizację System plików.Gwarantuje to, że procesem hosta będzie ASP.NET Development Server.

  2. Włącz debugowanie w projekcie witryny sieci Web ASP.NET.Aby to zrobić, należy edytować plik konfiguracji projektu sieci Web.Jeżeli projekt zawiera już plik Web.config, przejdź do kroku 4.Jeśli nie, dodaj go teraz: Otwórz menu skrótów dla projektu witryny sieci Web w swoim rozwiązaniu, a następnie wybierz Dodaj nowy element.

    Wyświetlane jest okno dialogowe Dodaj nowy element.

  3. W oknie dialogowym Dodaj nowy element, wybierz Plik konfiguracji sieci Web, a następnie wybierz Dodaj.

    Plik Web.config zostanie dodawany do projektu witryny sieci Web.Aby uzyskać więcej informacji o sposobach używania plików Web.config, zobacz Porady: Włączanie debugowania aplikacji ASP.NET.

  4. W pliku Web.config zmień wiersz <compilation debug="false"/> na <compilation debug="true"/>.

  5. Dodaj instrukcję System.Diagnostics.Debugger.Break() na początku testu jednostkowego ASP.NET.

    [!UWAGA]

    Punkty przerwania w kodzie zostaną uruchomione tylko wtedy, gdy są one zgodne z instrukcją System.Diagnostics.Debugger.Break().

    [!UWAGA]

    W języku C++ ta instrukcja to System::Diagnostics::Debugger::Break().Aby uzyskać informacje dotyczące sposobu używania testów jednostkowych w Visual C++, zobacz Unit Tests and C++.

  6. Ustaw punkty przerwania w teście jednostkowym ASP.NET i w kodzie produkcyjnym dla witryny sieci Web.

  7. Uruchom test.

    Aby to zrobić, wybierz test, który ma być debugowany w Eksploratorze testów jednostkowych, a następnie z menu Testowanie wybierz Debuguj testy jednostkowe, a następnie Wybrane testy.

  8. W momencie uruchomienia testu pojawi się okno dialogowe.To okno dialogowe wskazuje, że program napotkał punkt przerwania.

  9. Wybierz Debugowanie, wybierz wystąpienie Visual Studio, w którym jest załadowane rozwiązanie, a następnie wybierz Tak.

    Visual Studio zostanie dołączony do procesu, z wykonywaniem wstrzymanym przy instrukcji System.Diagnostics.Debugger.Break().Można wybrać Kontynuuj z menu Debugowanie lub nacisnąć klawisz F5, aby umożliwić kontynuowanie wykonywania do następnego punktu przerwania.

    [!UWAGA]

    Należy upewnić się, że instrukcja System.Diagnostics.Debugger.Break() zostanie usunięta po zakończeniu debugowania.W przeciwnym wypadku okno dialogowe punktu przerwania będzie wyświetlane przy każdym uruchomieniu testu.

Zobacz też

Zadania

Porady: debugowanie w czasie trwania testu

Inne zasoby

Porady: włączanie debugowania dla aplikacji ASP.NET