Проверка кода базы данных с помощью модульных тестов SQL Server

 

Модульные тесты SQL Server можно использовать, чтобы установить базовое состояние базы данных, а затем для проверки всех последующих изменений, вносимых в объекты базы данных.

Чтобы определить базовое состояние базы данных, создается проект тестов и записываются наборы Transact-SQL, которые выполняют действия с объектами базы данных.С помощью этих тестов в изолированной среде разработки можно проверить, функционируют ли эти объекты, как ожидалось.Модульное тестирование SQL Server хорошо работает в сочетании с разработкой баз данных в автономном режиме с использованием проектов баз данных SQL Server (дополнительные сведения см. в разделе Разработка базы данных вне сети с учетом проекта).После создания базового набора модульных тестов SQL Server с их помощью можно проверять правильность работы базы данных перед занесением изменений в систему управления версиями.

Можно создать тесты, проверяющие изменения в любом объекте базы данных.Также можно автоматически создавать заглушки кода Transact-SQL, тестирующие функции, триггеры и хранимые процедуры баз данных.

System_CAPS_ICON_note.jpg Примечание


Можно создавать и выполнять модульные тесты SQL Server, не имея открытого проекта базы данных.Если же вы хотите автоматически формировать скрипты тестов для тестирования определенных объектов базы данных вашего проекта, необходимо открыть проект базы данных, содержащий объекты, которые требуется тестировать.

Затем, если вы или сотрудники вашей группы будете вносить изменения в схему базы данных, с помощью этих тестов вы сможете убедиться, что изменения не нарушили существующие функциональные возможности.Модульные тесты SQL Server, создаваемые вами, дополняют модульные тесты ПО, создаваемые разработчиками ПО.Чтобы проверить работу приложения в целом, необходимо выполнить оба набора тестов.

Модульные тесты могут проверить, смогли ли процедуры успешно завершиться, когда это ожидалось, а также завершились ли они с ошибкой, когда ожидался именно такой результат.Тестирование на возникновение соответствующих ошибок называется отрицательным тестированием.

Поддержка модульных тестов SQL Server в выпусках Visual Studio

Функция модульных тестов SQL Server, которая была добавлена в обновление SQL Server Data Tools от декабря 2012 года, позволяет создавать, изменять и выполнять модульные тесты SQL Server в Visual Studio 2010 Professional, Visual Studio 2012 Professional и более старших выпусках.

Чтобы удостовериться в том, что устанавливается самое последнее обновление SQL Server Data Tools, откройте Диалоговое окно «Проверка наличия обновлений».

Оболочка Visual Studio 2010, интегрированная в Visual Studio 2012 и SQL Server Data Tools, не поддерживает модульные тесты SQL Server.

Общие задачи

В следующей таблице приводятся описания общих задач, поддерживающих данный сценарий, а также ссылки на дополнительные сведения, которые помогут успешно выполнять эти задачи.

Общие задачи Вспомогательное содержимое
Получите опыт практической работы. Можно выполнить вводное пошаговое руководство, чтобы ознакомиться с процессом создания и запуска простого модульного теста SQL Server.В это пошаговое руководство входит пример отрицательного модульного теста SQL Server. Пошаговое руководство. Создание и запуск модульного теста SQL Server
Определение модульных тестов SQL Server. Модульные тесты SQL Server можно создавать в своих собственных проектах.Для этого задаются параметры проекта, после чего для каждого теста определяется одно или несколько условий теста. Создание и определение модульных тестов SQL Server

Использование условий теста в модульных тестах SQL Server
Запуск модульных тестов SQL Server. После определения одного или нескольких модульных тестов вы можете их запускать, выполнять отладку любых проблем и изучать результаты тестов. Выполнение модульных тестов SQL Server
Управление группами тестов (Visual Studio 2010). Тесты, которые обычно выполняются одновременно, можно организовать в группы.Списки тестов все еще поддерживаются, однако для новых групп тестов рекомендуется использовать категории тестов.Например, можно создать категорию тестов для тестов триггеров или для всех объектов из определенной схемы. Определение категорий тестов для группирования тестов

Определение списков тестов для группирования тестов
Внесение проектов тестов и тестов в систему управления версиями. После того как тесты были выполнены и было установлено, что они работают верно, проект тестов и все связанные файлы можно внести в систему управления версиями, чтобы все остальные участники вашей группы могли выполнять эти тесты.Занеся проект тестов в систему управления версиями вместе с проектом базы данных SQL Server, можно легко восстановить совместимые версии и базы данных, и тестов базы данных. Добавление файлов в систему управления версиями

Использование окон «Занесение» и «Незавершенные изменения»
Определение пользовательских условий тестов. Если необходимо тестировать поведение, которое не покрывается условиями тестов, заданными по умолчанию, можно создать пользовательские условия.Эти условия необходимо распространить среди всех участников вашей группы, которым необходимо выполнять тесты с новыми условиями. Сценарий. Определение нестандартных условий теста для модульных тестов SQL Server
Обновление существующих модульных тестов. Если существуют модульные тесты базы данных, созданные в предыдущей версии Visual Studio, то до для их успешного построения и запуска в этом выпуске следует выполнить их обновление. Note: При открытии решения, содержащего проект базы данных и проект модульных тестов базы данных из предыдущей версии Visual Studio, будет предложено выполнить обновление проекта базы данных.Программа не потребует обновить проекты модульных тестов баз данных. Они должны обновляться вручную. Обновление старого проекта тестов, содержащего модульные тесты базы данных
Расширяемость.SQL Server Data Tools Можно расширять путем создания расширений компонента. Нестандартные условия теста для модульных тестов SQL Server
Устранение проблем. Дополнительные сведения об устранении часто встречающихся проблем с модульными тестами SQL Server. Устранение неполадок модульных тестов базы данных SQL Server

Связанные сценарии

Разработка базы данных вне сети с учетом проекта
Модульное тестирование баз данных особенно эффективно при использовании в сочетании с разработкой проектов в автономном режиме с помощью проектов базы данных SQL Server.

См. также

SQL Server Data Tools