팀 환경에서 웹 사이트 및 웹 서비스 테스트
업데이트: 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 특성의 사용과 구문에 대한 자세한 내용은 AspNetDevelopmentServerHostAttribute 및 ASP.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."
);
}
참고 항목
작업
개념
참조
Microsoft.VisualStudio.TestTools.UnitTesting.Web
AspNetDevelopmentServerAttribute
AspNetDevelopmentServerHostAttribute