다음을 통해 공유


방법: 데이터베이스 단위 테스트 실행 구성

이 항목은 다음 언어에 적용됩니다.

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

항목이 적용됨 항목이 적용됨 항목이 적용되지 않음 항목이 적용되지 않음

테스트 프로젝트를 구성하여 데이터베이스 단위 테스트가 실행되는 방법에 대한 측면을 제어하는 여러 설정을 지정할 수 있습니다. 이러한 구성 설정은 테스트 프로젝트의 app.config 파일에 저장됩니다. 이 파일을 직접 편집할 경우 프로젝트 구성 대화 상자에 새 값이 표시됩니다.

사용자의 솔루션에 여러 테스트 프로젝트가 포함될 수 있습니다. 각 테스트 프로젝트는 하나의 app.config 파일(즉, 하나의 구성 설정 집합)을 포함합니다. 결과적으로 사용자의 솔루션은 다르게 실행하도록 구성된 데이터베이스 단위 테스트(각 테스트 프로젝트에 대한 하나의 집합)의 여러 다른 집합을 포함할 수 있습니다.

이러한 설정은 테스트하는 데이터베이스에 테스트가 연결되는 방법, 스키마를 데이터베이스 프로젝트에서 해당 데이터베이스에 배포하는 방법, 데이터 생성 계획을 사용하여 데이터베이스를 채울지 여부를 제어합니다.

  • 데이터베이스 연결. 이 설정을 사용하여 테스트하는 데이터베이스에 연결하는 데 사용되는 연결 문자열을 지정합니다. 자세한 내용은 연결 문자열 지정을 참조하십시오.

  • 스키마 배포. 데이터베이스 프로젝트는 데이터베이스를 오프라인으로 표현한 것입니다. 데이터베이스 프로젝트는 데이터베이스 개체의 구조를 나타내지만 데이터를 포함하지 않습니다. 데이터베이스 프로젝트에서 스키마 변경을 수행한 후 실제 데이터베이스에서 테스트할 수 있습니다. 스키마 배포 단계에서 데이터베이스 프로젝트에 있는 테스트할 데이터베이스 개체는 테스트를 실행할 데이터베이스에 복사됩니다. 스키마 배포에 대한 자세한 내용은 데이터베이스 스키마 배포를 참조하십시오.

  • 데이터베이스 상태. 데이터베이스에 대한 테스트 데이터를 생성하여 테스트 실행이 시작되기 전에 해당 상태를 설정할 수 있습니다. 또한 TestInitialize 스크립트의 백업 복사본에서 복원하여 데이터베이스 상태를 설정할 수 있습니다. 이 방법에 대한 자세한 내용은 데이터베이스 단위 테스트의 스크립트를 참조하십시오.

    생성할 데이터를 지정하려면 테스트 데이터를 포함해야 하는 테이블과 열을 식별하는 데이터 생성 계획을 만듭니다. 또한 데이터가 갖게 될 형태를 지정합니다. 예를 들어 전화 번호를 위한 적절한 자릿수를 생성하거나 스크러빙한 테스트 데이터의 데이터베이스에서 가상의 고객 이름을 가져올 수 있습니다. 자세한 내용은 데이터 생성 계획 사용을 참조하십시오.

    참고

    테스트는 솔루션 폴더가 아니라 로컬 하드 디스크에 있는 별개의 폴더에서 실행됩니다. 테스트 배포의 측면을 구성할 수 있지만 일반적으로 데이터베이스 단위 테스트에 대해 구성할 필요는 없습니다. 테스트 배포에 대한 자세한 내용은 테스트 실행을 참조하십시오.

연결 문자열 지정

데이터베이스 연결 문자열을 지정하려면

  1. 테스트 메뉴에서 데이터베이스 테스트 구성을 클릭합니다.

    프로젝트 'TestProject' 구성 대화 상자가 나타납니다.

  2. 데이터베이스 연결에서 다음을 수행할 수 있습니다.

    • 단위 테스트를 실행할 데이터베이스 연결을 클릭합니다.

    • 다른 데이터베이스 연결에 대해 테스트 실행의 유효성을 검사하려면 보조 데이터 연결을 사용하여 단위 테스트 유효성 검사 확인란을 선택하고 목록에서 데이터베이스 연결을 클릭합니다.

    • 새 연결을 클릭하여 연결을 목록 중 하나에 추가합니다. 연결 편집을 클릭하여 기존 연결의 설정을 수정할 수도 있습니다.

    이 단계에서는 데이터베이스 단위 테스트의 테스트 스크립트를 실행하는 데 사용되는 ExecutionContext 연결 문자열을 만듭니다. 보조 연결도 지정할 경우 또한 PrivilegedContext 연결 문자열이 만들어집니다. 이 연결은 데이터베이스 단위 테스트의 테스트 스크립트 외부에 있는 데이터베이스와의 상호 작용을 테스트하는 데 사용됩니다. 자세한 내용은 연결 문자열 및 권한 개요를 참조하십시오.

  3. 확인을 클릭하여 프로젝트 'TestProject' 구성 대화 상자를 닫습니다.

  4. 테스트 프로젝트를 다시 빌드하여 구성 변경 내용을 적용합니다.

데이터베이스 스키마 배포

데이터베이스 프로젝트의 스키마를 데이터베이스에 배포하려면

  1. 솔루션 탐색기에서 데이터베이스 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 빌드를 클릭합니다.

    데이터베이스 프로젝트를 빌드하면 Transact-SQL 스크립트가 생성됩니다. 데이터베이스에 대해 실행될 경우 이 스크립트는 해당 데이터베이스에서 데이터베이스 프로젝트의 구조를 다시 만듭니다.

  2. 구성할 테스트 프로젝트를 선택합니다.

  3. 테스트 메뉴에서 데이터베이스 테스트 구성을 클릭합니다.

    프로젝트 'TestProject' 구성 대화 상자가 나타납니다.

  4. 배포에서 다음을 수행할 수 있습니다.

    • 테스트를 실행하기 전에 자동으로 데이터베이스 프로젝트 배포 확인란을 선택하여 테스트가 실행되기 전에 데이터베이스 프로젝트에 대한 모든 스키마 변경 내용이 커밋되도록 합니다.

    • 데이터베이스 프로젝트에서 배포할 데이터베이스 프로젝트를 클릭하거나 줄임표를 클릭하여 다른 프로젝트를 찾습니다. 데이터베이스 프로젝트 파일의 확장명은 .dbproj입니다.

    • 배포 구성에서 배포의 대상이 될 프로젝트 구성을 클릭합니다. 디버그, 기본값 또는 릴리스를 선택할 수 있습니다. 그러나 단위 테스트를 위한 구성을 만들 경우 해당 구성도 옵션으로 표시됩니다.

  5. 확인을 클릭하여 프로젝트 'TestProject' 구성 대화 상자를 닫습니다.

    테스트 실행을 시작할 때 1단계에서 생성된 Transact-SQL 스크립트가 실행됩니다. 이 작업은 스키마를 대상 데이터베이스에 배포합니다.

  6. 데이터베이스 단위 테스트 프로젝트를 다시 빌드하여 구성 변경 내용을 적용합니다.

    참고

    데이터 생성을 사용하고 있으며 스키마를 단위 테스트 프로젝트의 일부로 배포할 경우 데이터가 손실되면 증분 배포 차단 확인란의 선택을 취소합니다. 이 확인란은 데이터베이스 프로젝트의 속성에 있는 빌드 탭에 표시됩니다. 스키마를 배포하기 전에 이 확인란의 선택을 취소하지 않으면 배포가 실패합니다. 자세한 내용은 방법: 기존 데이터베이스에 배포하는 동안 데이터 손실 제어를 참조하십시오.

데이터 생성 계획 사용

데이터베이스 단위 테스트와 함께 데이터 생성 계획을 사용하려면

  1. 데이터 생성 계획을 만듭니다. 자세한 내용은 방법: 데이터 생성 계획 만들기를 참조하십시오.

  2. 데이터 생성 계획으로 채울 테이블을 지정합니다. 자세한 내용은 방법: 데이터를 생성할 테이블 지정을 참조하십시오.

  3. 채울 테이블 내의 열을 지정합니다. 자세한 내용은 방법: 데이터를 생성할 열 지정을 참조하십시오.

  4. 데이터 생성 계획을 저장하고 해당 이름을 기록해 둡니다.

  5. 솔루션 탐색기에서 구성할 테스트 프로젝트를 클릭합니다.

  6. 테스트 메뉴에서 데이터베이스 테스트 구성을 클릭합니다.

    프로젝트 'TestProject' 구성 대화 상자가 나타납니다.

  7. 데이터베이스 상태에서 다음을 수행합니다.

    • 단위 테스트를 실행하기 전에 테스트 데이터 생성 확인란을 선택하여 테스트를 실행하기 전에 데이터 생성 계획을 데이터베이스 프로젝트에 적용합니다. 데이터 생성 계획의 확장명은 .dgen입니다.

    • 적용할 데이터 생성 계획을 목록에서 클릭하거나 줄임표를 클릭하여 계획을 찾습니다.

    • 테스트 데이터를 생성하기 전에 데이터베이스 지우기 확인란을 선택하여 지정된 데이터베이스 프로젝트에서 기존 테스트 데이터베이스를 덮어씁니다.

  8. 확인을 클릭하여 프로젝트 'TestProject' 구성 대화 상자를 닫습니다.

    데이터 생성 계획을 호출하는 코드가 테스트 프로젝트의 AssemblyInitialize 메서드에 추가됩니다. 이 메서드는 DatabaseSetup.cs 또는 DatabaseSetup.vb라는 파일에서 찾을 수 있습니다. 데이터베이스 단위 테스트를 지금 실행할 경우 데이터 생성 계획은 테스트 실행 시작 시에 데이터베이스를 한 번 채웁니다.

    참고

    테스트 데이터 생성의 결과를 취소할 수 없습니다.

  9. (선택 사항) 테스트 실행에서 이 데이터 생성 계획을 여러 번 사용하려면 AssemblyInitialize 메서드에서 이 계획을 호출하는 코드를 복사하여 데이터베이스 단위 테스트의 다른 메서드에 붙여 넣습니다.

  10. 테스트 프로젝트를 다시 빌드하여 구성 변경 내용을 적용합니다.

참고 항목

작업

방법: 데이터 생성 계획 만들기

개념

단위 테스트를 사용하여 데이터베이스 코드 확인