방법: ASP.NET 솔루션에서 테스트를 실행하는 동안 디버깅
업데이트: 2007년 11월
ASP.NET 웹 프로젝트를 테스트하기 위해 사용 중인 단위 테스트와 웹 테스트를 모두 디버깅할 수 있습니다. 테스트를 실행하는 동안 ASP.NET 프로덕션 코드를 디버깅할 수도 있습니다.
그러나 ASP.NET 코드를 테스트하면 테스트 코드가 VSTestHost 프로세스에서 일반적인 방법으로 실행되지 않습니다. 대신 테스트 코드가 IIS 프로세스 또는 ASP.NET Development Server 프로세스(웹 사이트가 파일 기반인 경우)에서 실행됩니다. 테스트가 일반 테스트 프로세스가 아닌 프로세스에서 실행되기 때문에 테스트 뷰 창의 선택 항목 디버그 옵션이나 테스트 목록 편집기의 선택한 테스트 디버그 옵션을 선택하면 테스트가 실행되는 동안 디버깅되지 않습니다.
마찬가지로 디버깅이 사용되지 않고 디버거가 ASP.NET Development Server 또는 IIS 프로세스에 연결되지 않은 경우 ASP.NET 프로덕션 코드를 한 단계씩 실행할 수 없습니다.
다음 각 절차에서 새 웹 사이트 대화 상자를 사용하여 ASP.NET 웹 사이트 프로젝트를 만듭니다. 이 대화 상자에서 위치 목록 상자를 사용하여 웹 사이트의 위치를 선택합니다. 여기에서 선택한 항목에 따라 나중에 디버거를 연결할 프로세스 및 ASP.NET 솔루션에서 테스트를 실행하면서 따라야 하는 디버깅 단계가 결정됩니다. IIS 및 ASP.NET Development Server를 선택할 수 있습니다.
IIS에서 실행 도중 디버깅
ASP.NET Development Server에서 실행 도중 디버깅
IIS에서 실행 도중 디버깅
다음 절차에서는 프로세스에 디버거를 연결합니다. 설치된 IIS 버전은 운영 체제에 따라 결정되므로 프로세스의 이름은 사용 중인 운영 체제에 따라 다릅니다. 다음 표에서는 각 운영 체제에서 사용되는 프로세스를 보여 줍니다. 첫 번째 열의 운영 체제에 프로세스에 연결 대화 상자의 사용 가능한 프로세스 섹션에 있는 세 번째 열에 지정된 프로세스 이름을 사용합니다.
운영 체제 |
호스트 프로세스 |
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 테스트를 실행하면서 디버깅하려면
테스트하려는 ASP.NET 웹 사이트 프로젝트와 해당 프로젝트를 테스트할 ASP.NET 단위 테스트를 만듭니다.
이 웹 사이트 프로젝트를 만들 때 새 웹 사이트 대화 상자에서 위치로 HTTP 또는 FTP를 선택합니다. 이렇게 하면 IIS가 호스트 프로세스가 됩니다.
자세한 내용은 방법: ASP.NET 단위 테스트 만들기를 참조하십시오.
ASP.NET 웹 프로젝트에서 디버깅을 활성화합니다. 이렇게 하려면 프로젝트의 웹 구성 파일을 편집합니다. 프로젝트에 Web.config 파일이 이미 있는 경우 4단계로 이동합니다. 그렇지 않은 경우 이 파일을 지금 추가합니다. 솔루션에서 웹 사이트 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 새 항목 추가를 클릭합니다.
새 항목 추가 대화 상자가 표시됩니다.
새 항목 추가 대화 상자에서 웹 구성 파일을 클릭한 다음 추가를 클릭합니다.
Web.config 파일이 사용자의 웹 사이트 프로젝트에 추가됩니다. Web.config 파일을 사용하는 방법에 대한 자세한 내용은 방법: ASP.NET 응용 프로그램에 디버깅 사용을 참조하십시오.
Web.config 파일에서 <compilation debug="false"/>로 표시되는 줄을 <compilation debug="true"/>로 변경합니다.
(선택 사항) 사용자 웹 사이트에 대한 ASP.NET 단위 테스트 및 프로덕션 코드에 중단점을 설정합니다.
IIS 프로세스에 디버거를 연결합니다. 이렇게 하려면 디버그를 클릭한 다음 프로세스에 연결을 클릭합니다.
프로세스에 연결 대화 상자가 표시됩니다.
사용 가능한 프로세스에서 디버거를 연결할 프로세스의 이름을 찾습니다.
원하는 프로세스가 표시되지 않는 경우 실행 중인 더 많은 프로세스를 표시할 수 있습니다. 이렇게 하려면 모든 사용자의 프로세스 표시 및 모든 세션의 프로세스 표시를 선택합니다.
사용 가능한 프로세스에서 프로세스 이름을 클릭한 다음 연결을 클릭합니다.
연결해야 할 프로세스가 실행되고 있지 않은 경우 취소를 클릭한 다음 프로세스를 시작합니다. 이렇게 하려면 솔루션 탐색기에서 웹 사이트 프로젝트를 마우스 오른쪽 단추로 클릭한 후 브라우저에서 보기를 클릭합니다. 다음으로 디버그를 클릭한 다음 프로세스에 연결을 다시 클릭하면 시작된 프로세스가 사용 가능한 프로세스에 표시됩니다. 프로세스 이름을 클릭한 다음 연결을 클릭합니다.
테스트를 시작합니다.
이렇게 하려면 테스트 뷰 창에서 디버깅하려는 테스트를 마우스 오른쪽 단추로 클릭하고 선택 항목 디버그을 선택합니다.
참고: 테스트를 실행할 때 선택 항목 디버그 대신 선택 항목 실행을 선택할 수 있습니다. 선택 항목 디버그를 선택하면 테스트 완료 후 디버거가 자동으로 분리되지만 선택 항목 실행을 선택하면 디버거가 연결된 채로 유지된다는 차이점이 있습니다. 특히 디버그 도중 테스트를 몇 차례 다시 실행하려는 경우 프로세스를 매번 다시 연결할 필요가 없으므로 선택 항목 실행이 유용합니다. 선택 항목 실행을 선택한 경우 디버깅을 마친 후 프로세스를 분리하려면 디버그 메뉴에서 디버깅 중지를 선택하거나 Shift+F5를 누릅니다.
ASP.NET Development Server에서 실행 도중 디버깅
ASP.NET Development Server에서 테스트를 실행하는 도중 디버깅하려면
테스트하려는 ASP.NET 웹 사이트 프로젝트와 해당 프로젝트를 테스트할 ASP.NET 단위 테스트를 만듭니다.
이 웹 사이트 프로젝트를 만들 때 새 웹 사이트 대화 상자에서 위치로 파일 시스템을 선택합니다. 이렇게 하면 ASP.NET Development Server가 호스트 프로세스가 됩니다.
자세한 내용은 방법: ASP.NET 단위 테스트 만들기를 참조하십시오.
ASP.NET 웹 프로젝트에서 디버깅을 활성화합니다. 이렇게 하려면 프로젝트의 웹 구성 파일을 편집합니다. 프로젝트에 Web.config 파일이 이미 있는 경우 4단계로 이동합니다. 그렇지 않은 경우 이 파일을 지금 추가합니다. 솔루션에서 웹 사이트 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 새 항목 추가를 클릭합니다.
새 항목 추가 대화 상자가 표시됩니다.
새 항목 추가 대화 상자에서 웹 구성 파일을 클릭한 다음 추가를 클릭합니다.
Web.config 파일이 사용자의 웹 사이트 프로젝트에 추가됩니다. Web.config 파일을 사용하는 방법에 대한 자세한 내용은 방법: ASP.NET 응용 프로그램에 디버깅 사용을 참조하십시오.
Web.config 파일에서 <compilation debug="false"/>로 표시되는 줄을 <compilation debug="true"/>로 변경합니다.
ASP.NET 단위 테스트 시작 부분에 System.Diagnostics.Debugger.Break() 문을 추가합니다.
참고: 코드에서 이 System.Diagnostics.Debugger.Break() 문 뒤에 나오는 중단점만 적용됩니다.
참고: C++에서는 System::Diagnostics::Debugger::Break() 문을 사용합니다. Visual C++에서 단위 테스트를 사용하는 방법에 대한 자세한 내용은 단위 테스트와 C++를 참조하십시오.
사용자 웹 사이트에 대한 ASP.NET 단위 테스트 및 프로덕션 코드에 중단점을 설정합니다.
테스트를 시작합니다.
이렇게 하려면 테스트 뷰 창에서 실행할 테스트를 마우스 오른쪽 단추로 클릭하고 선택 항목 실행을 선택합니다.
테스트 실행과 동시에 대화 상자가 표시됩니다. 이 대화 상자에는 프로그램에서 중단점에 도달했다는 메시지가 표시됩니다.
디버그를 클릭하고 해당 솔루션이 로드된 Visual Studio 인스턴스를 선택한 다음 예를 클릭합니다.
System.Diagnostics.Debugger.Break() 문에서 실행이 일시 중지된 상태로 프로세스에 Visual Studio가 연결됩니다. 디버그 메뉴에서 계속을 선택하거나 F5 키를 눌러 다음 중단점까지 계속 실행할 수 있습니다.
참고: 디버깅을 마친 후 System.Diagnostics.Debugger.Break() 문을 제거해야 합니다. 이렇게 하지 않으면 테스트를 실행할 때마다 중단점 대화 상자가 표시됩니다.