Published on

October 23, 2014

Запуск модульных тестов в SQL Server Data Tools и Team Foundation Server

Добро пожаловать на третий пост в нашей серии о разработке и тестировании баз данных с использованием SQL Server Data Tools и Team Foundation Server. В предыдущих постах мы обсуждали непрерывную интеграцию с SSDT и TFS, а также модульное тестирование с помощью SQL Server Data Tools. В этом посте мы сосредоточимся на запуске тестов в Visual Studio для обеспечения качества вашей сборки.

Visual Studio 2012 и 2013 предлагают пять типов тестов, доступных для пользователей:

  • Модульные тесты
  • Тесты пользовательского интерфейса
  • Тесты производительности веб-приложений
  • Тесты нагрузки
  • Общие тесты

Эти тесты, часто называемые тестами на дымовую проверку или тестами подтверждения сборки (BVT), необходимы для проверки функциональности и стабильности вашего приложения.

Требования к программному обеспечению

Для запуска модульных тестов вам понадобится Visual Studio 2010, 2012 или 2013, как минимум в версии Professional. Встроенная оболочка SQL Server Data Tools недостаточна для этой цели.

Настройка и запуск запланированных тестов

При создании тестов на подтверждение сборки вам потребуется использовать Visual Studio, систему контроля версий и средство сборки Team Foundation Build (msbuild). Вот шаги для настройки и запуска запланированных тестов после успешной сборки вашего приложения:

  1. Напишите свои тесты и проверьте их с помощью системы контроля версий.
  2. Создайте определение сборки.
  3. Добавьте компьютер в группу пользователей TestBuildController.
  4. Настройте агент сборки.
  5. Запустите определение сборки BVT.

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

Создание определения сборки

Чтобы создать определение сборки, перейдите в меню Сборка на домашней странице Team Explorer и нажмите на Создать определение сборки. Дайте имя и описание вашей сборке. В меню Триггер выберите непрерывную интеграцию.

В меню Процесс убедитесь, что все ваши проекты или решение выбраны в разделе Элементы для сборки. В разделе Основные -> Автоматизированные тесты -> Источник тестов нажмите многоточие (…) и убедитесь, что ваш сборочный модуль тестов указан там. По умолчанию он указывает шаблон, который находит все DLL-файлы с “test” в их имени. Эта строка поиска будет рекурсивно искать в каталогах все DLL-файлы, соответствующие шаблону в бинарных каталогах.

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

Требуемые разрешения для выполнения модульных тестов в SQL Server Data Tools

Для выполнения модульных тестов на базе данных вам необходимо иметь следующие разрешения:

  • Действие: Выполнить тест
  • Соединение контекста выполнения: 1
  • Соединение контекста с привилегиями: 1
  • Действие: Выполнить предварительный или последующий тест
  • Действие: Выполнить скрипты TestInitialize и TestCleanup
  • Действие: Развернуть изменения базы данных перед запуском тестов
  • Действие: Сгенерировать данные перед запуском тестов

Как видите, существуют два типа соединений с базой данных контекста: контекст выполнения и контекст с привилегиями. Соединение контекста с привилегиями требует больше разрешений из-за выполняемых задач.

Изменение разрешений контекста

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

Контекст выполнения равен 1, и если вы его указываете, контекст с привилегиями будет равен 2 (для выполнения скриптов предварительной или последующей сборки и/или развертывания базы данных перед запуском тестов).

Использование интегрированной безопасности с модульными тестами

Ваши тесты всегда будут выполняться контроллером. В моем случае, он имеет то же имя, что и имя моего компьютера, и работает под учетной записью NT AUTHORITY\NETWORK SERVICE. Это служба Windows, работающая с настраиваемой учетной записью, поэтому ее изменение пр

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.