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

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

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

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

Примечание

Модульные тесты 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, используйте Диалоговое окно "Проверка обновлений".

Интегрированная оболочка SQL Server Data Tools в Visual Studio 2010 и Visual Studio 2012 не поддерживает модульные тесты 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, вы всегда сможете легко восстановить совместимые версии базы данных и тестов для нее. Добавление файлов в систему управления версиями

Использование окон "Запись после изменений" и Ожидающие изменения"
Определение пользовательских условий тестов. Если тестируемое поведение не охватывается условиями стандартных тестов, вы можете создать пользовательские условия. Эти условия необходимо распространить среди всех участников вашей группы, которым необходимо выполнять тесты с новыми условиями. Scenario: Создание пользовательских условий теста для модульных тестов SQL Server
Обновление существующих модульных тестов. Если у вас есть модульные тесты базы данных, созданные в предыдущей версии Visual Studio, их нужно обновить, чтобы они успешно создавались и запускались с использованием этого выпуска.

Примечание. При открытии решения, содержащего проект базы данных и проект модульных тестов базы данных из предыдущей версии Visual Studio, вам будет предложено обновить проект базы данных. Программа не потребует обновить проекты модульных тестов баз данных. Они должны обновляться вручную.
Обновление старого тестового проекта, содержащего модульные тесты базы данных
Расширяемость. Вы можете расширить возможности SQL Server Data Tools, создавая расширения компонентов. Пользовательские условия теста для модульных тестов SQL Server
Устранение проблем. Дополнительные сведения об устранении часто встречающихся проблем с модульными тестами SQL Server. Устранение неполадок с модульными тестами базы данных SQL Server

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

См. также:

SQL Server Data Tools