방법: Team Foundation Build에서 데이터베이스 단위 테스트 실행

Team Foundation Build를 사용하여 BVT(빌드 확인 테스트)의 일부로 데이터베이스 단위 테스트를 실행할 수 있습니다. 데이터베이스 단위 테스트를 구성하여 데이터베이스를 배포하고 테스트 데이터를 생성한 다음 선택한 테스트를 실행할 수 있습니다. Team Foundation Build에 익숙하지 않은 경우 이 항목의 절차를 따르기 전에 다음 정보를 검토해 보십시오.

이러한 절차를 따르기 전에 우선 다음 작업을 수행하여 작업 환경을 구성해야 합니다.

  • Team Foundation Build와 Team Foundation 버전 제어를 설치합니다. Team Foundation Build 및 Team Foundation 버전 제어를 서로 다른 컴퓨터에 설치해야 할 수 있습니다.

  • Visual Studio Team Foundation Server의 인스턴스에 연결합니다. Team Foundation Server에 연결하는 방법에 대한 자세한 내용은 How to: Connect to a Team Project in Team Foundation Server을 참조하십시오.

작업 환경을 구성한 후에는 Visual Studio Premium 또는 Visual Studio Ultimate에서 다음 단계를 수행해야 합니다. 

  1. 데이터베이스 프로젝트를 만듭니다.

  2. 데이터베이스 프로젝트의 스키마 및 개체를 가져오거나 만듭니다.

  3. 빌드 및 배포에 대한 데이터베이스 프로젝트 속성을 구성합니다.

  4. 하나 이상의 데이터베이스 단위 테스트를 만듭니다.

  5. 데이터베이스 프로젝트와 데이터베이스 단위 테스트가 들어 있는 솔루션을 버전 제어에 추가하고 모든 파일을 체크 인합니다.

이 항목의 절차에서는 자동화된 테스트 실행의 일부로 데이터베이스 단위 테스트를 실행하는 빌드 정의를 만드는 방법에 대해 설명합니다.

  1. x64 빌드 에이전트에서 데이터베이스 단위 테스트를 실행하도록 테스트 설정 구성

  2. 테스트 범주에 테스트 할당(선택 사항)

  3. 테스트 프로젝트 수정

  4. 솔루션 체크 인

  5. 빌드 정의 만들기

  6. 새 빌드 정의 실행

빌드 컴퓨터에서 데이터베이스 단위 테스트 실행

빌드 컴퓨터에서 데이터베이스 단위 테스트를 실행할 때 단위 테스트에서 데이터베이스 프로젝트 파일(.dbproj) 또는 데이터 생성 계획(.dgen)을 찾지 못할 수 있습니다. 이 문제는 app.config 파일에서 상대 경로를 사용하여 이러한 파일을 참조하기 때문에 발생합니다. 또한 데이터베이스 단위 테스트를 실행하는 데 사용할 SQL Server의 인스턴스를 찾지 못하면 데이터베이스 단위 테스트가 실패할 수 있습니다. 빌드 컴퓨터에서 app.config 파일에 저장된 연결 문자열이 잘못된 경우 이 문제가 발생할 수 있습니다.

이러한 문제를 해결하려면 app.config에서 사용 중인 Team Foundation Build 환경에 맞는 구성 파일로 app.config를 재정의하도록 재정의 섹션을 지정해야 합니다. 자세한 내용은 이 항목 뒷부분의 테스트 프로젝트 수정을 참조하십시오.

x64 빌드 에이전트에서 데이터베이스 단위 테스트를 실행하도록 테스트 설정 구성

x64 빌드 에이전트에서 데이터베이스 단위 테스트를 실행하려면 먼저 테스트 설정을 구성하여 호스트 프로세스 플랫폼을 변경해야 합니다.

호스트 프로세스 플랫폼을 지정하려면

  1. 설정을 구성할 테스트 프로젝트가 포함된 솔루션을 엽니다.

  2. 솔루션 탐색기솔루션 항목 폴더에서 Local.testsettings 파일을 두 번 클릭합니다.

    테스트 설정 대화 상자가 나타납니다.

  3. 목록에서 호스트를 클릭합니다.

  4. 세부 정보 창의 호스트 프로세스 플랫폼에서 MSIL을 클릭하여 테스트가 x64 빌드 에이전트에서 실행되도록 구성합니다.

  5. 적용을 클릭합니다.

테스트 범주에 테스트 할당(선택 사항)

일반적으로 빌드 정의를 만들어 단위 테스트를 실행하는 경우에는 하나 이상의 테스트 범주를 지정합니다. 지정된 범주의 모든 테스트는 빌드를 실행할 때 실행됩니다.

테스트 범주에 테스트를 할당하려면

  1. 테스트 뷰 창을 엽니다.

  2. 테스트를 선택합니다.

  3. 속성 창에서 테스트 범주를 클릭하고 맨 오른쪽 열의 줄임표(…)를 클릭합니다.

  4. 테스트 범주 창의 새 범주 추가 상자에 새 테스트 범주의 이름을 입력합니다.

  5. 추가를 클릭하고 확인을 클릭합니다.

    새 테스트 범주가 테스트에 할당되고 해당 속성을 통해 다른 테스트에 사용할 수 있게 됩니다.

테스트 프로젝트 수정

기본적으로 Team Foundation Build에서는 단위 테스트 프로젝트를 빌드할 때 프로젝트의 app.config 파일을 사용하여 구성 파일을 만듭니다. app.config 파일에는 데이터 생성 계획 및 데이터베이스 프로젝트에 대한 경로가 상대 경로로 저장됩니다. Team Foundation Build에서는 빌드된 파일을 단위 테스트가 실행되는 위치를 기준으로 다른 위치에 배치하므로 Visual Studio 내에서 작동하는 상대 경로는 사용할 수 없습니다. 또한 app.config 파일에는 테스트할 데이터베이스를 지정하는 연결 문자열이 들어 있습니다. 단위 테스트에서 테스트 프로젝트를 만들 때 사용한 것과 다른 데이터베이스에 연결해야 하는 경우에도 Team Foundation Build를 위한 별도의 app.config 파일이 필요합니다. 다음 절차에 따라 파일을 수정하면 Team Foundation Build에서 다른 구성을 사용하도록 테스트 프로젝트 및 빌드 서버를 설정할 수 있습니다.

중요

각 테스트 프로젝트(.vbproj 또는 .vsproj)에서 이 절차를 수행해야 합니다.

Team Foundation Build에 대한 app.config 파일을 지정하려면

  1. 솔루션 탐색기에서 app.config 파일을 마우스 오른쪽 단추로 클릭하고 복사를 클릭합니다.

  2. 테스트 프로젝트를 마우스 오른쪽 단추로 클릭하고 붙여넣기를 클릭합니다.

  3. 사본 - app.config라는 파일을 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 클릭합니다.

  4. BuildComputer.dbunitttest.config를 입력하고 Enter 키를 누릅니다. 여기서 BuildComputer는 빌드 에이전트가 실행되는 컴퓨터의 이름입니다.

  5. BuildComputer.dbunitttesting.config를 두 번 클릭합니다.

    구성 파일이 편집기에서 열립니다.

  6. 솔루션과 동일한 이름으로 소스 폴더 및 하위 폴더에 대한 폴더 수준을 추가하여 .dbproj 및 .dgen 파일의 상대 경로를 변경합니다. 예를 들어 처음에는 구성 파일에 다음 항목이 포함되어 있습니다.

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\SalesDB\SalesDB.DBProj" Configuration="Debug" />
    

    이 파일을 다음과 같이 업데이트합니다.

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\SalesDB\SalesDB.DBProj" Configuration="Debug" />
    

    데이터 생성 파일을 지정한 경우 해당 파일에 대해 이 과정을 반복합니다.

    작업을 완료하면 BuildComputer.dbunitttest.config 파일은 다음 예제와 비슷해야 합니다.

    <DatabaseUnitTesting>
            <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\UnitTest\UnitTest\UnitTest.dbproj"
                Configuration="Debug" />
            <DataGeneration ClearDatabase="true" />
            <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
            <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
    </DatabaseUnitTesting>
    
  7. ExecutionContext 및 PrivilegedContext에 대한 ConnectionString 특성을 업데이트하여 배포할 대상 데이터베이스에 대한 연결을 지정합니다.

  8. 파일 메뉴에서 모두 저장을 클릭합니다.

  9. 솔루션 탐색기에서 app.config를 두 번 클릭합니다.

  10. 편집기에서 <DatabaseUnitTesting> 노드를 다음과 같이 업데이트합니다.

    <DatabaseUnitTesting AllowConfigurationOverride="true">
    

    이렇게 변경하면 Team Foundation Build에서 사용자가 만든 대체 구성 파일을 사용할 수 있습니다.

  11. 파일 메뉴에서 모두 저장을 클릭합니다.

    그런 다음 사용자 지정 구성 파일을 포함하도록 Local.testsettings를 업데이트해야 합니다.

사용자 지정 구성 파일을 배포하도록 Local.testsettings를 사용자 지정하려면

  1. 솔루션 탐색기에서 Local.testsettings를 두 번 클릭합니다.

    테스트 설정 대화 상자가 나타납니다.

  2. 범주 목록에서 배포를 클릭합니다.

  3. 배포 가능 확인란을 선택합니다.

  4. 파일 추가를 클릭합니다.

  5. 배포 파일 추가 대화 상자에서 사용자가 만든 BuildComputer.dbunitttest.config 파일을 지정합니다.

  6. 적용을 클릭합니다.

  7. 닫기를 클릭합니다.

  8. 파일 메뉴에서 모두 저장을 클릭합니다.

    그런 다음 솔루션을 버전 제어에 체크 인합니다.

솔루션 체크 인

이 절차에서는 솔루션의 모든 파일을 체크 인합니다. 이러한 파일에는 테스트 범주 연결 및 테스트가 들어 있는 솔루션의 테스트 메타데이터 파일이 포함됩니다. 테스트의 내용을 추가, 삭제, 다시 구성 또는 변경할 때마다 변경 내용이 반영되도록 테스트 메타데이터 파일이 자동으로 업데이트됩니다.

참고

이 절차에서는 Team Foundation 버전 제어를 사용하는 경우의 단계를 설명합니다. 다른 버전 제어 소프트웨어를 사용하는 경우 해당 소프트웨어에 맞는 단계를 따라야 합니다.

솔루션을 체크 인하려면

  1. Team Foundation Server를 실행 중인 컴퓨터에 연결합니다.

    자세한 내용은 소스 제어 탐색기 사용을 참조하십시오.

  2. 솔루션이 소스 제어에 없는 경우 소스 제어에 솔루션을 추가합니다.

    자세한 내용은 파일을 버전 제어에 추가를 참조하십시오.

  3. 보기를 클릭한 다음 보류 중인 체크 인을 클릭합니다.

  4. 솔루션의 모든 파일을 체크 인합니다.

    자세한 내용은 보류 중인 변경 내용 체크 인을 참조하십시오.

    참고

    자동화된 테스트를 만들고 관리하는 방식을 제어하는 특정 팀 프로세스가 있는 경우가 있습니다. 예를 들어 코드 및 코드를 대상으로 실행할 테스트를 체크 인하기 전에 프로세스에 따라 로컬로 빌드를 확인해야 할 수도 있습니다.

    솔루션 탐색기에서 각 파일 옆에 파일이 체크 인되었음을 나타내는 자물쇠 아이콘이 표시됩니다. 자세한 내용은 버전 제어 파일 및 폴더 속성 보기를 참조하십시오.

    이 테스트는 Team Foundation Build에서 사용할 수 있습니다. 이제 실행할 테스트를 포함하는 빌드 정의를 만들 수 있습니다.

빌드 정의 만들기

빌드 정의를 만들려면

  1. 팀 탐색기에서 팀 프로젝트를 클릭하고 빌드 노드를 마우스 오른쪽 단추로 클릭한 다음 새 빌드 정의를 클릭합니다.

    새 빌드 정의 창이 나타납니다.

  2. 빌드 정의 이름에 빌드 정의에 사용할 이름을 입력합니다.

  3. 탐색 모음에서 빌드 기본값을 클릭합니다.

  4. **다음 저장 폴더에 빌드 출력 복사(UNC 경로, 예: \\server\share)**에 빌드 출력을 저장할 폴더를 지정합니다.

    로컬 컴퓨터나 빌드 프로세스에서 사용 권한을 가질 네트워크 위치의 공유 폴더를 지정할 수 있습니다.

  5. 탐색 모음에서 프로세스를 클릭합니다.

  6. 필수 그룹의 빌드할 항목에서 찾아보기(…) 단추를 클릭합니다.

  7. 빌드 프로젝트 목록 편집기 대화 상자에서 추가를 클릭합니다.

  8. 이 연습의 앞부분에서 버전 제어에 추가한 솔루션 파일(.sln)을 지정하고 확인을 클릭합니다.

    빌드할 프로젝트 또는 솔루션 파일 목록에 해당 솔루션이 나타납니다.

  9. 확인을 클릭합니다.

  10. 기본 그룹의 자동화된 테스트에서 실행할 테스트를 지정합니다. 기본적으로 솔루션에서 *test*.dll이라는 파일에 포함된 테스트가 실행됩니다.

  11. 파일 메뉴에서 ProjectName 저장을 클릭합니다.

    빌드 정의를 만들었습니다. 다음에는 테스트 프로젝트를 수정합니다.

새 빌드 정의를 실행합니다.

새 빌드 형식을 실행하려면

  1. 팀 탐색기에서 팀 프로젝트 노드와 "빌드" 노드를 차례로 확장하고 실행할 빌드 정의를 마우스 오른쪽 단추로 클릭한 다음 "새 빌드 큐 대기"를 클릭합니다.

    빌드 {TeamProjectName} 큐에 대기 대화 상자가 모든 기존 빌드 형식 목록과 함께 나타납니다.

  2. 필요한 경우 빌드 정의에서 새 빌드 정의를 클릭합니다.

  3. 빌드 정의, 빌드 에이전트이 빌드의 저장 폴더 필드의 값이 모두 적절한지 확인한 후 를 클릭합니다.

    빌드 탐색기큐 대기 탭이 나타납니다. 자세한 내용은 완료된 빌드 관리 및 보기를 참조하십시오.

참고 항목

작업

기본 빌드 정의 만들기

큐에 빌드 대기시키기

실행 중인 빌드의 진행률 모니터링