다음을 통해 공유


방법: 테스트에 대한 파일 배포

테스트를 실행하기 전에 테스트와 응용 프로그램을 이들이 참조하는 다른 어셈블리와 함께 실행할 수 있는 위치로 복사해야 합니다. 테스트는 일반적으로 테스트 데이터, 구성 파일, 데이터베이스 및 명시적으로 로드된 어셈블리 같은 추가 파일이 필요합니다. 추가 파일을 테스트에 사용할 수 있도록 하려면 이 파일이 배포될 것임을 지정해야 합니다.

테스트가 어디에서 실행됩니까?

Visual Studio 2013은 여러 위치에서 테스트를 실행할 수 있습니다.

로컬 테스트를 위한 테스트 파일을 배포하는 방법은 무엇입니까?

가장 좋은 방법은 다음과 같습니다.

  1. 빌드 프로세스의 일부로 빌드 대상 디렉터리에 파일을 복사합니다.

    • 한 테스트 프로젝트에만 사용되는 경우 Visual Studio 테스트 프로젝트의 콘텐츠 파일로 포함합니다. 솔루션 탐색기에서 선택하고 출력 디렉터리로 복사 속성을 변경된 내용만 복사로 설정합니다.

    • 그렇지 않은 경우, 빌드 출력 디렉터리에 파일을 복사하도록 빌드 후 작업을 정의합니다. 예를 들면 다음과 같습니다.

      xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
      

      테스트 프로젝트의 프로젝트 속성을 엽니다. C# 프로젝트에서 빌드 이벤트 페이지를 엽니다. Visual Basic 프로젝트에서 컴파일 페이지를 열고 빌드 이벤트를 선택합니다. 복사 명령을 빌드 후 이벤트 필드에 추가합니다.

  2. 빌드 출력 디렉터리에서 배포 디렉터리로 복사해야 하는 파일 및 폴더를 지정하려면 테스트 메서드 또는 테스트 클래스에서 DeploymentItemAttribute를 사용합니다.

    [TestClass]
    class TestClass1
    {
      [TestMethod]
      [DeploymentItem("source", "targetFolder")]
      public void Test1()
      {
        string testData = System.IO.File.ReadAllText(@"targetFolder\source");
        ...
    } }
    
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("source", "targetFolder")> _
        Sub TestMethod1()
            Dim testData As String = _
                System.IO.File.ReadAllText(@"targetFolder\source")
        ...
        End Sub
    End Class
    
    • source는 복사되는 파일이나 디렉터리입니다. 경로는 절대 경로이거나 빌드 출력 디렉터리에 대한 상대 경로일 수 있습니다.

    • targetFolder는 선택적 요소입니다. 소스 파일 또는 디렉터리 콘텐츠가 복사될 디렉터리입니다. 경로는 절대 경로이거나 배포 디렉터리에 대한 상대 경로일 수 있습니다. 기본값은 배포 디렉터리인 "."입니다.

      참고

      targetFolder는 파일 경로가 아니라 항상 디렉터리입니다.DeploymentItem을 사용하여 파일 이름을 변경할 수 없습니다.

    원하는 만큼 특성을 사용하여 테스트 메서드 또는 테스트 클래스에 적용할 수 있습니다.

    실행할 테스트 집합을 선택하면 테스트 실행이 시작되기 전에 DeploymentItem 특성에 지정된 모든 항목이 복사됩니다.

  3. 더 빠르게 테스트를 실행할 수 있도록 빌드 출력 디렉터리에서 단위 테스트를 직접 실행하는 것을 고려합니다. 테스트를 체크 인한 다음 빌드 서버에서 특히 유용합니다.

    이렇게 하려면 솔루션에 .runsettings 파일을 추가하고 <DeploymentEnabled>False</DeploymentEnabled>를 포함시키고 테스트, 테스트 설정 메뉴에서 파일을 선택합니다. DeploymentItemAttribute가 전혀 사용되지 않는 모든 테스트 실행에서 동일 효과가 발생합니다.

    그러나 웹과 부하 테스트, 코딩된 UI 테스트 및 응용 프로그램을 원격 컴퓨터에 배포하는 테스트에 필요한 *.testsettings 파일을 사용하는 경우 배포 폴더 사용을 방지할 수 없습니다.

*.runsettings 파일이란?

임의의 이름인 파일로 파일 이름 확장자가 '.runsettings'입니다. 이 파일은 일부 용도에 대한 단위 테스트를 구성하는 데 사용됩니다. 이 파일을 만들려면 .runsettings 파일을 사용하여 단위 테스트 구성에서 예제를 복사합니다. 이 파일을 솔루션 폴더에 저장한 다음 테스트>테스트 설정 메뉴를 사용하여 활성 상태로 만듭니다.

*.testsettings 파일은 언제 사용합니까?

*.testsettings 파일(즉, 파일 이름 확장자가 '.testsettings'인 임의의 이름의 파일)은 이전의 *.runsettings 파일 대신 사용됩니다. 이 파일을 만들려면 테스트>테스트 설정 메뉴의 메뉴 항목을 사용합니다. 이 파일을 솔루션 폴더에 저장한 다음 테스트>테스트 설정 메뉴를 사용하여 활성 상태로 만듭니다.

*.testsettings 파일은 단위 테스트의 실행 속도를 느리게 만들고 타사 테스트 프레임워크와 호환되지 않으므로 가능한 사용하지 않는 것이 좋습니다. 일반 단위 테스트의 경우 이 파일이 필요하지 않습니다. 하지만 다음과 같은 경우에는 필요합니다.

*.testsettings 파일을 사용하는 경우 응용 프로그램 및 테스트 어셈블리는 항상 배포 폴더로 복사됩니다.

.testsettings 편집기의 배포 페이지에서 데이터 파일 및 디렉터리를 지정할 수 있습니다. 각 테스트 실행 전에 배포 폴더로 복사됩니다. 이 페이지에 지정된 항목 경로는 항상 솔루션 디렉터리와 관련이 있으며 항상 응용 프로그램 및 테스트 어셈블리와 함께 배포 폴더에 배포됩니다.

절대 경로를 사용하거나 다른 대상 디렉터리를 지정하려면 XML 편집기를 사용하여 .testsettings 파일을 열고 다음과 비슷한 조각을 삽입합니다.

<Deployment>
  <DeploymentItem filename="C:\MyTestData\TestData.mdb"
        outputDirectory="D:\TestDB\" />
</Deployment>

outputDirectory는 절대 경로이거나 배포 디렉터리에 대한 상대 경로일 수 있습니다.

별도 배포 폴더가 사용되는 경우는 언제입니까?

Visual Studio를 사용하여 테스트를 실행하는 경우 솔루션 폴더의 TestResults 아래 배포 폴더가 만들어집니다.

테스트 실행에서 테스트 메서드 또는 클래스가 DeploymentItem 특성을 갖거나 *.testsettings 파일을 사용하는 경우 개별 배포 폴더가 사용됩니다.

배포 폴더를 사용하는 경우 테스트를 실행하기 전에 다음 파일과 폴더가 배포 폴더로 복사됩니다.

로컬 테스트 실행에 대한 배포 폴더

테스트용 로컬 배포 폴더

파일은 언제 어떤 순서로 배포됩니까?

테스트 실행 시 테스트를 시작하기 전에 배포할 모든 파일이 복사됩니다. 테스트 실행은 단일 명령 또는 예정된 이벤트에 의해 시작된 테스트의 일괄 처리입니다. 즉, 특정 테스트 메서드에 배포되는 데이터 파일을 지정하는 경우 동일한 실행에서 수행되는 다른 모든 테스트에서 사용할 수 있게 됩니다.

다음 항목이 표시된 순서대로 복사됩니다. 이름이 동일한 경우 나중에 복사된 항목이 이전에 복사된 항목을 덮어씁니다.

  1. DeploymentItemAttribute을 사용하여 지정된 항목

  2. 종속성. 예를 들어, 응용 프로그램 구성 파일 및 종속 어셈블리가 여기에 해당합니다.

  3. *.testsettings 파일에 지정된 항목(사용하는 경우)

  4. 계측된 이진 파일. 예를 들어, 코드 검사 또는 IntelliTrace를 설정하기 위해 계측된 어셈블리가 여기에 해당합니다.

    원위치 계측을 사용하는 경우 이진 파일은 먼저 계측된 다음 배포 디렉터리로 복사됩니다. 그렇지 않은 경우에는 먼저 복사된 다음 계측됩니다. 원위치 계측은 로컬로 실행되는 테스트의 기본 설정입니다.

  5. 테스트를 구성하는 파일. 여기에는 단위 테스트의 경우 테스트 어셈블리, 수동 테스트의 경우 텍스트 또는 .mht 파일, 제네릭 테스트와 같은 기타 테스트 종류의 경우 기타 파일 형식이 포함됩니다.

TestResults 디렉터리의 내용은 무엇입니까?

  • 테스트 실행 폴더. 테스트 결과는 시작된 각 테스트 실행에 대한 하나의 폴더를 포함합니다. 이름은 생성된 시간을 포함합니다.

    *.testsettings 파일에서 설정 및 정리 스크립트를 지정하는 경우 테스트 실행 폴더는 이러한 스크립트를 포함합니다.

  • Out. 각 테스트 실행 폴더에는 Out이라는 폴더가 하나씩 있습니다. Out 폴더가 실제 배포 폴더이며 테스트 실행이 시작되면 어셈블리 및 기타 배포 파일이 이 폴더로 복사됩니다.

  • In. 코드 검사 결과 및 다른 특정 테스트 결과는 In이라는 폴더에 저장됩니다.

참고 항목

참조

DeploymentItemAttribute

개념

어셈블리 계측 및 다시 서명

기타 리소스

Visual Studio 테스트를 위한 테스트 설정 지정