Общие сведения о строках подключения и разрешениях
Для запуска модульных тестов SQL Server необходимо подключиться к серверу базы данных с помощью одной или двух определенных строк подключения. Каждая строка подключения представляет учетную запись, которая имеет определенные разрешения, необходимые для выполнения задачи или набора задач конкретного скрипта, входящего в тест. Строки подключения задаются в диалоговом окне Конфигурация теста SQL Server или вручную путем изменения файла app.config для проекта тестов.
Строки соединения
В диалоговом окне Конфигурация теста SQL Server можно задать строки подключения для каждой из следующих учетных записей.
Примечание
Контекст выполнения и привилегированный контекст отличаются, только когда используется аутентификация SQL Server. Если же используется аутентификация Windows, в обеих строках подключения будут использоваться одинаковые учетные данные.
Контекст выполнения (обязательно) — учетная запись пользователя для выполнения скрипта теста. Эта строка подключения должна иметь те же учетные данные, которые, как предполагается, будут у пользователей. Это важно, так как обеспечивает применение соответствующих разрешений к базе данных. Дополнительные сведения см. в разделе Как настроить выполнение модульного теста SQL Server.
В файле app.config проекта тестов это элемент
ExecutionContext
.Привилегированный контекст (необязательно) — учетная запись в той же базе данных, имеющая более высокие разрешения для запуска действий, выполняемых до и после теста, а также скриптов TestInitialize и TestCleanup. Эти скрипты задают состояние базы данных, а действие, выполняемое после теста, можно использовать для проверки объектов в базе данных. Эта строка подключения также используется для развертывания изменений базы данных и формирования данных.
В файле app.config проекта тестов это элемент
PrivilegedContext
. Если модульные тесты SQL Server выполняют только скрипт теста, привилегированный контекст указывать не нужно.
Строки, указанные в диалоговом окне конфигурации проекта, сохраняются в файле app.config проекта тестов. Этот файл также можно изменить напрямую и перестроить проект, после чего новые значения появятся в диалоговом окне.
Аутентификация SQL Server и аутентификация Windows
При указании строк подключения необходимо выбрать метод аутентификации — Windows или SQL Server. Аутентификация Windows обеспечивает более эффективную поддержку тестов, выполняемых группой специалистов, чем аутентификация SQL Server. Если выбрана проверка подлинности SQL Server, строки подключения шифруются на основе учетных данных пользователя с помощью API-интерфейса защиты данных (DPAPI). Это означает, что тесты в этом проекте тестов будут выполняться только для вас, а не для членов команды, которые получают тесты через систему управления версиями после их возврата. Для выполнения тестов в этом проекте тестов другие члены команды должны будут перенастроить этот проект с использованием собственных учетных данных. Для этого им пришлось бы изменить свою копию файла app.config или воспользоваться диалоговым окном конфигурации проекта.
Разрешения
Скрипты тестов запускаются с уровнем разрешений контекста выполнения, который соответствует уровню разрешений, действующему при нормальном выполнении команд пользователем в рабочей базе данных. Действия, выполняемые до и после теста, скрипты TestInitialize и TestCleanup запускаются с уровнем разрешений привилегированного контекста.
Поскольку для скрипта, выполняемого после теста, используется соединение с более высоким уровнем разрешений, в его рамках можно произвести проверку данных. В этом скрипте можно также выполнять команды, проверяющие разрешения. См. дополнительные сведения о требуемых разрешениях для SQL Server Data Tools.
См. также:
Создание и определение модульных тестов SQL Server
Скрипты в модульных тестах SQL Server
Файлы модульного теста SQL Server