연결 문자열 및 권한 개요

데이터베이스 단위 테스트를 실행하려면 한 개 또는 두 개의 특정 연결 문자열을 사용하여 데이터베이스 서버에 연결해야 합니다. 각 연결 문자열은 특정 스크립트의 작업이나 작업 집합을 테스트의 일부로 수행하려고 할 때 필요한 특정 권한이 있는 계정을 나타냅니다. 프로젝트 구성 대화 상자에서 이러한 문자열을 지정하거나 테스트 프로젝트의 app.config 파일을 수동으로 편집하여 이러한 문자열을 지정할 수 있습니다.

연결 문자열

프로젝트 구성 대화 상자에서 다음 각 계정에 대해 연결 문자열을 지정할 수 있습니다.

참고

SQL Server 인증을 사용하는 경우에만 실행 컨텍스트와 권한 있는 컨텍스트가 다릅니다. Windows 인증을 사용하는 경우 양쪽 연결 문자열에 대해 같은 자격 증명이 사용됩니다.

  • 실행 컨텍스트(필수) - 테스트 스크립트를 실행하는 사용자 계정. 이 연결 문자열에는 사용자에게 필요한 자격 증명이 포함되어 있어야 합니다. 이 자격 증명은 사용자 데이터베이스에 적절한 권한이 적용되었음을 확인하므로 중요합니다. 자세한 내용은 방법: 데이터베이스 단위 테스트 실행 구성을 참조하십시오.

    테스트 프로젝트의 app.config 파일에서 이는 ExecutionContext 요소입니다.

  • 권한 있는 컨텍스트(선택 사항) - 테스트 전 작업, 테스트 후 작업, TestInitialize 및 TestCleanup 스크립트를 실행하는 더 높은 권한이 있는 계정. 이러한 스크립트는 데이터베이스 상태를 설정하고 테스트 후 작업의 경우 데이터베이스 개체의 유효성을 검사하는 데 사용할 수 있습니다. 또한 이 연결 문자열은 데이터베이스 변경 내용을 배포하고 데이터를 생성하는 데 사용됩니다.

    테스트 프로젝트의 app.config 파일에서 이는 PrivilegedContext 요소입니다. 데이터베이스 단위 테스트에서 테스트 스크립트만 실행하는 경우에는 권한 있는 컨텍스트를 지정할 필요가 없습니다.

프로젝트 구성 대화 상자에서 지정하는 문자열은 테스트 프로젝트의 app.config 파일에 저장됩니다. 해당 파일을 직접 편집하고 프로젝트를 다시 빌드할 수도 있습니다. 이렇게 하면 새 값이 대화 상자에 나타납니다.

Windows 인증과 SQL 인증 비교

연결 문자열을 지정할 때 Windows 인증과 SQL 인증 중 하나를 사용하도록 선택해야 합니다. Windows 인증을 선택하는 이유 중 하나는 SQL 인증의 경우보다 팀별 테스트 사용을 보다 잘 지원하기 때문입니다. SQL 인증을 선택하는 경우에는 사용자 자격 증명을 기반으로 DPAPI(Data Protection API)를 사용하여 연결 문자열이 암호화됩니다. 따라서 이 테스트 프로젝트의 테스트는 사용자를 위해서만 실행되며, 테스트가 체크 인된 후 소스 제어 시스템을 통해 테스트를 얻는 팀 멤버를 위해서는 실행되지 않습니다. 이 테스트 프로젝트의 테스트를 실행하려면 팀의 다른 멤버가 자신의 자격 증명을 사용하여 테스트 프로젝트를 다시 구성해야 합니다. 이 작업을 수행하려면 app.config 파일의 복사본을 편집하거나 프로젝트 구성 대화 상자를 사용합니다.

권한

테스트 스크립트는 실행 컨텍스트 권한 수준에서 실행됩니다. 이 권한 수준은 일반적인 용도로 데이터베이스에서 실행되는 사용자 명령에 적용되는 것과 같은 권한 수준입니다. 테스트 전 작업, 테스트 후 작업, TestInitialize 및 TestCleanup 스크립트는 권한 있는 컨텍스트 권한 수준에서 실행됩니다.

테스트 후 작업 스크립트에 사용되는 더 높은 권한 연결로 인해 해당 스크립트에서 유효성 검사를 수행할 수 있습니다. 이 스크립트에서 권한을 테스트하는 스크립트 명령을 실행할 수도 있습니다. 권한에 대한 자세한 내용은 Visual Studio의 데이터베이스 기능에 필요한 권한의 데이터베이스 단위 테스트 단원을 참조하십시오.

참고 항목

개념

데이터베이스 단위 테스트의 스크립트

데이터베이스 단위 테스트 파일