다음을 통해 공유


팀 환경에서 웹 사이트 및 웹 서비스 테스트

업데이트: 2007년 11월

웹 사이트를 처음 테스트할 때는 일반적으로 사용자의 컴퓨터에서 테스트합니다. 그러나 팀 동료와 테스트를 공유해야 할 수도 있습니다. 또는 보다 공식적인 환경의 경우 프로덕션 코드와 테스트를 소스 제어로 체크 인하는 프로젝트에서 작업한 다음 빌드 작업실에서 해당 테스트를 사용하여 코드를 테스트할 수 있습니다. 이러한 각 시나리오에서는 사이트가 로컬 컴퓨터에 있는지 여부에 관계없이 단위 테스트에서 테스트 대상 웹 사이트를 식별할 수 있어야 합니다. 테스트 엔진에서 웹 사이트를 식별할 수 있게 하려면 이 항목의 다음 단원에서 설명하는 것처럼 %PathToWebRoot% 변수를 사용합니다.

서버 선택

웹 사이트나 웹 서비스를 개발 중인 경우 IIS와 같은 웹 서버나 ASP.NET Development Server 중 하나를 사용하여 실행할 수 있습니다. 이러한 선택에 따라 다음 단원의 설명과 같이 웹 사이트 또는 웹 서비스를 테스트하는 방법도 결정됩니다.

  • ASP.NET Development Server를 사용한 웹 서비스 테스트

  • ASP.NET Development Server를 사용한 웹 사이트 테스트

테스트 관련 상세 정보

단위 테스트를 사용하여 웹 서비스 테스트의 설명과 같이 웹 서비스의 웹 메서드를 테스트할 수도 있고, ASP.NET 단위 테스트 개요의 설명과 같이 웹 사이트의 비즈니스 논리를 테스트할 수도 있습니다. 또한 웹 테스트를 사용하여 웹 테스트 작업의 설명과 같이 웹 페이지를 테스트할 수 있습니다.

ASP.NET Development Server를 사용한 웹 서비스 테스트

로컬 파일 시스템의 ASP.NET Development Server를 사용하여 웹 서비스를 테스트하려면 AspNetDevelopmentServer 특성을 사용하여 단위 테스트 메서드를 표시합니다. 웹 사이트의 위치를 식별하려면 해당 루트 디렉터리의 경로를 AspNetDevelopmentServer 특성의 매개 변수에서 지정합니다. 이렇게 하려면 pathToWebRoot 설정의 설명과 같이 %PathToWebRoot% 변수를 사용합니다. 자세한 내용은 웹 서비스 테스트를 참조하십시오.

AspNetDevelopmentServer 특성의 사용과 구문에 대한 자세한 내용은 AspNetDevelopmentServerAttribute웹 서비스 테스트를 참조하십시오.

ASP.NET Development Server를 사용한 웹 사이트 테스트

ASP.NET 단위 테스트를 생성하여 사용자 컴퓨터의 파일 시스템에서 웹 사이트를 테스트하는 경우 AspNetDevelopmentServerHost 특성을 사용하여 테스트를 표시합니다. 이 특성에는 pathToWebApp 매개 변수가 필요합니다. 생성된 ASP.NET 단위 테스트에는 기본적으로 pathToWebApp 매개 변수에 %PathToWebRoot% 변수를 포함합니다. 이 변수의 값은 아래의 pathToWebRoot 설정에 나오는 설명에 따라 설정합니다. ASP.NET Development Server를 사용하여 웹 사이트를 테스트하는 방법에 대한 자세한 내용은 ASP.NET 단위 테스트 개요를 참조하십시오.

AspNetDevelopmentServerHost 특성의 사용과 구문에 대한 자세한 내용은 AspNetDevelopmentServerHostAttributeASP.NET 단위 테스트 개요를 참조하십시오.

pathToWebRoot 설정

ASP.NET Development Server에서 실행되는 웹 사이트 또는 웹 서비스를 테스트하는 데 사용될 모든 단위 테스트에서 AspNetDevelopmentServer 또는 AspNetDevelopmentServerHost 특성의 pathToWebApp 매개 변수에 %pathtowebroot%\\<WebSiteName> 문자열을 지정해야 합니다. 매개 변수는 다음과 같이 지정하십시오.

  • 문자열 %PathToWebRoot% 약어를 사용합니다. 현재 사용자 컴퓨터에서만 테스트를 실행 중인 경우라도 이 문자열을 사용해야 이렇게 하면 테스트를 다른 작업자와 유연성 있게 공유하고 Team Foundation Build에서 실행할 수 있습니다.

    참고:

    사용자 컴퓨터에서 공통 루트 디렉터리를 공유하지 않는 여러 웹 사이트를 테스트하는 경우 %PathToWebRoot% 변수를 사용하는 대신 웹 사이트에 대한 경로를 각 테스트에 하드 코드로 작성할 수 있습니다. 이렇게 하면 해당 웹 사이트를 보다 넓은 범위에서 공유할 수 없게 되므로 로컬에서 테스트할 때만 이러한 방법을 사용해야 합니다. 이러한 경우 팀의 다른 작업자가 웹 사이트를 테스트하거나 Team Foundation Build에서 테스트하기 전에 경로를 변경하여 %PathToWebRoot% 변수를 포함해야 합니다.

  • <WebSiteName>은 테스트할 웹 사이트의 이름입니다. 솔루션 탐색기에 나타나는 웹 사이트 이름과 정확히 일치하게 이 문자열을 입력합니다.

pathToWebApp 매개 변수를 사용하는 예제를 보려면 테스트 메서드 예제를 참조하십시오.

%PathToWebRoot% 값 설정

%PathToWebRoot% 변수는 환경에 따라 다른 방식으로 값을 가져옵니다. 다음과 같은 두 가지 경우가 있습니다.

  • Team Foundation Build에서 %PathToWebRoot% 설정

  • 기타 공유 환경에서 %PathToWebRoot% 설정

Team Foundation Build에서 %PathToWebRoot% 설정

Team Foundation Build에서 이 변수를 사용하면 %PathToWebRoot% 변수 값이 빌드 형식의 정보에서 파생되어 Team Foundation Build에서 자동으로 설정됩니다.

예를 들어 x86 플랫폼을 대상으로 빌드된 'WebSite1'의 'Release' 버전을 테스트하면 PathToWeb 값이 다음과 같이 설정됩니다.

<build directory>/binaries/x86/Release/_precompiled/WebSite1

기타 공유 환경에서 %PathToWebRoot% 설정

Team Foundation Build에서 이 변수를 사용하는 경우를 제외한 모든 경우에는 %PathToWebRoot% 변수 값이 다음과 같이 설정됩니다. 테스트를 실행하면 시스템은 다음 위치 중 하나 이상에서 %PathToWebRoot% 변수 값을 찾습니다.

  • 새 웹 사이트 프로젝트의 기본 위치. 기본적으로 시스템은 Visual Studio가 새 웹 사이트 프로젝트를 만드는 위치에 대한 경로를 사용합니다. 이 경로의 기본값은 **<drive>:\Documents and Settings\<user name>\My Documents\Visual Studio 2005\WebSites\**입니다.

  • PathToWebRoot 환경 변수. 테스트가 실행되는 컴퓨터에 이 환경 변수를 정의한 경우 해당 값이 사용되므로 새 웹 사이트 프로젝트에 대한 기본 위치의 값을 재정의합니다.

  • 웹 응용 프로그램 루트 디렉터리의 값. 이 값을 설정하려면 도구를 클릭한 다음 옵션을 클릭하고 테스트 도구를 확장한 다음 테스트 실행을 클릭합니다. 이 값을 설정한 경우 PathToWebRoot 환경 변수의 값과 새 웹 사이트 프로젝트의 기본 위치를 재정의합니다.

테스트 메서드 예제

웹 서비스를 테스트하는 다음 테스트 메서드는 AspNetDevelopmentServer 특성으로 표시됩니다. AspNetDevelopmentServer 특성에는 pathToWebApp 매개 변수가 필요합니다. 다음 예제에서는 pathToWebApp 매개 변수에 사용된 %PathToWebRoot% 변수가 굵은 텍스트로 표시되어 있습니다.

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;
using TestProject1.localhost;

[TestMethod]
[AspNetDevelopmentServer("HelloWorldServer", "%PathToWebRoot%\\WebSite1")]

public void HelloWorldTest()
{
    HelloWorldService target = new HelloWorldService();

    WebServiceHelper.TryUrlRedirection(
                                       target, 
                                       TestContext,
                                       "HelloWorldServer"
                                       );

    string expected = "Hello World";
    string actual;

    actual = target.HelloWorld();

    Assert.AreEqual(
                    expected, 
                    actual,

"TestProject1.localhost.HelloWorldService.HelloWorld did not return the expected value."
                    );
}

참고 항목

작업

방법: 단위 테스트 작성

방법: 웹 서버 매개 변수화

개념

Visual Web Developer의 웹 서버

ASP.NET 단위 테스트 개요

참조

Microsoft.VisualStudio.TestTools.UnitTesting.Web

AspNetDevelopmentServerAttribute

AspNetDevelopmentServerHostAttribute

기타 리소스

웹 서비스 테스트

방법: 단위 테스트 생성