Практическое руководство. Выполнение модульных тестов базы данных из Team Foundation Build
Team Foundation Build можно использовать для выполнения модульных тестов базы данных в составе теста проверки построения. Можно настроить модульные тесты базы данных для развертывания базы данных, создания тестовых данных и затем выполнения выбранных тестов. Тем, кто не знаком с Team Foundation Build, следует просмотреть следующую информацию, прежде чем выполнять описанные в этом разделе процедуры.
Перед использованием этих процедур следует настроить рабочую среду, выполнив следующие задачи.
Установите Team Foundation Build и Team Foundation (подсистема контроля версий). Вам, возможно, необходимо будет установить Team Foundation Build и Team Foundation (подсистема контроля версий) на разные компьютеры.
Подключитесь к экземпляру Visual Studio Team Foundation Server. Сведения о подключении к Team Foundation Server см. в разделе How to: Connect to a Team Project in Team Foundation Server.
После настройки рабочей среды необходимо выполнить в Visual Studio Premium или в Visual Studio Ultimate следующие действия.
Создайте проект базы данных.
Импортируйте или создайте схему и объекты для проекта базы данных.
Настройте свойства проекта базы данных для построения и развертывания.
Создайте один или более модульных тестов базы данных.
Добавьте решение, содержащее проект базы данных и проект модульных тестов базы данных в систему управления версиями и выполните возврат всех файлов.
В этом разделе описаны процедуры создания определения построения для выполнения модульных тестов базы данных как части автоматизированного тестового запуска.
Настройка параметров тестирования для запуска модульных тестов базы данных на агенте построения x64
Присвоение тестов категории тестов (необязательно)
Изменение тестового проекта
Возврат решения
Создание определения построения
Запуск нового определения построения
Выполнение модульных тестов базы данных на компьютере построения
При выполнении модульных тестов базы данных на компьютере построения модульные тесты могут не найти файлы проекта базы данных (с расширением DBPROJ) или планы создания данных (с расширением DGEN). Данная неполадка возникает из-за того, что в файле app.config ссылки на эти файлы осуществляются по относительным путям. Кроме того, модульные тесты базы данных могут завершиться неудачей, если им не удастся найти экземпляр SQL Server, который требуется использовать для выполнения модульных тестов базы данных. Данная неполадка может произойти, если строки подключения, хранящиеся в файле app.config, не являются допустимыми с компьютера построения.
Чтобы устранить эти неполадки, необходимо указать переопределяющий раздел в файле app.config, который переопределяет файл app.config с помощью файла конфигурации, относящегося к конкретной среде Team Foundation Build. Дополнительные сведения см. далее в подразделе Изменение тестового проекта.
Настройка параметров тестирования для запуска модульных тестов базы данных на агенте построения x64
Для запуска модульных тестов на агенте построения x64 нужно настроить параметры тестирования для изменения платформы хост-процесса.
Определение платформы хост-процесса
Откройте решение с проектом модульного теста, для которого необходимо настроить параметры.
В обозревателе решений в папке Элементы решения дважды щелкните файл Local.testsettings.
Откроется диалоговое окно Параметры тестирования.
Выберите в списке Узлы.
В области сведений окнаПлатформа хост-процесса выберите MSIL, чтобы настроить выполнение тестов на агенте построения x64.
Нажмите кнопку Применить.
Присвоение тестов категории тестов (необязательно)
Обычно при создании определения построения для выполнения модульных тестов указывается одна или несколько категорий тестов. При выполнении построения выполняются все тесты из указанных категорий.
Присвоение тестов категории тестов
Откройте окно Представление теста.
Выберите тест.
В области свойств щелкните Категории теста, затем щелкните многоточие (…) в самом правом столбце.
В окне Категория проверки в поле Добавить новую категорию введите имя новой категории теста.
Щелкните Добавить, затем нажмите ОК.
Тесту будет присвоена новая категория, и она станет также доступна и для других тестов в настройках их свойств.
Изменение тестового проекта
По умолчанию Team Foundation Build создает файл конфигурации на основе файла проекта app.config при построении проекта модульных тестов. Пути к плану создания данных и проекту базы данных хранятся как относительные пути в файле app.config. Относительные пути, действующие в Visual Studio, не будут работать, поскольку Team Foundation Build помещает файлы построения в расположения, отличные от того, в котором выполняются модульные тесты. Кроме того, файл app.config содержит строки подключения, задающие базу данных, которую требуется тестировать. Также для Team Foundation Build необходим отдельный файл app.config, если модульные тесты должны подключаться к другой базе данных, чем та, которая использовалась при создании тестового проекта. Выполнив изменения в следующей процедуре, можно настроить тестовый проект и сервер построения, чтобы Team Foundation Build использовал другую конфигурацию.
Важно!
Эту процедуру необходимо выполнить для каждого тестового проекта (VBPROJ или VSPROJ).
Задание файла app.config для Team Foundation Build
Щелкните правой кнопкой мыши файл app.config в Обозревателе решений и выберите команду Копировать.
Щелкните тестовый проект правой кнопкой мыши и выберите Вставить.
Щелкните правой кнопкой мыши файл Копия app.config и выберите команду "Переименовать".
Введите компьютер_построения.dbunitttest.config и нажмите клавишу ВВОД, где компьютер_построения — это имя компьютера, на котором выполняется агент построения.
Дважды щелкните файл компьютер_построения.dbunitttesting.config.
Файл конфигурации откроется в редакторе.
Измените относительный путь к DBPROJ- и DGEN-файлам, добавив уровень папок для папки "Sources" и вложенную папку с тем же именем, что и имя решения. Например, если файл конфигурации изначально содержит следующую запись:
<DatabaseDeployment DatabaseProjectFileName="..\..\..\SalesDB\SalesDB.DBProj" Configuration="Debug" />
Обновите файл следующим образом:
<DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\SalesDB\SalesDB.DBProj" Configuration="Debug" />
Повторите этот процесс для файла создания данных, если он указан.
По завершении ваш файл компьютер_построения.dbunitttest.config должен быть похож на следующий пример:
<DatabaseUnitTesting> <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\UnitTest\UnitTest\UnitTest.dbproj" Configuration="Debug" /> <DataGeneration ClearDatabase="true" /> <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False" CommandTimeout="30" /> <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False" CommandTimeout="30" /> </DatabaseUnitTesting>
Обновите атрибут ConnectionString для ExecutionContext и PrivilegedContext, чтобы указать подключения к целевой базе данных, в которую требуется выполнить развертывание.
В меню Файл выберите команду Сохранить все.
Дважды щелкните app.config в обозревателе решений.
В редакторе обновите узел <DatabaseUnitTesting> в соответствии со следующим примером:
<DatabaseUnitTesting AllowConfigurationOverride="true">
Это изменение разрешает Team Foundation Build использовать созданный заменяющий файл конфигурации.
В меню Файл выберите команду Сохранить все.
Далее необходимо обновить файл Local.testsettings, чтобы он включал ваш настроенный файл конфигурации.
Настройка файла Local.testsettings для развертывания настроенного файла конфигурации
Дважды щелкните файл Local.testsettings в обозревателе решений.
Откроется диалоговое окно Параметры тестирования.
В списке категорий щелкните Развертывание.
Установите флажок Включить развертывание.
Нажмите кнопку Добавить файл.
В диалоговом окне Добавление файлов развертывания укажите созданный файл компьютер_построения.dbunitttest.config.
Нажмите кнопку Применить.
Нажмите кнопку Закрыть.
В меню Файл выберите команду Сохранить все.
Затем выполняется возврат решения в систему управления версиями.
Возврат решения
В этой процедуре выполняется возврат всех файлов решения. В число этих файлов входит файл метаданных тестов решения, содержащий ассоциации категорий тестов и тесты. При добавлении, удалении, переупорядочении и изменении содержимого тестов файл метаданных автоматически обновляется, отражая эти изменения.
Примечание
Данная процедура описывает шаги, выполняемые при использовании Team Foundation (подсистема контроля версий).Если используется другое программное обеспечение для управления версиями, необходимо выполнить шаги, соответствующие этому программному обеспечению.
Возврат решения
Подключитесь к компьютеру, на котором выполняется Team Foundation Server.
Дополнительные сведения см. в разделе Использование обозревателя управления исходным кодом.
Если решение еще не находится под контролем системы управления версиями, добавьте его в эту систему.
Дополнительные сведения см. в разделе Добавление файлов в систему управления версиями.
Щелкните Вид и выберите Извлеченные элементы.
Выполните возврат всех файлов решения.
Дополнительные сведения см. в разделе Возврат ожидающих изменений.
Примечание
Может существовать определенный командный процесс, управляющий созданием автоматизированных тестов и управлением ими.Например, этот процесс может требовать, чтобы построение проверялось локально перед возвратом этого когда вместе с тестами, которые будут для него выполняться.
В обозревателе решений рядом с каждым файлом отобразится значок замка, указывающий, что файл возвращен. Дополнительные сведения см. в разделе Просмотр свойств файлов и папок в системе управления версиями.
Тесты стали доступными для Team Foundation Build. Теперь можно создать определение построения, содержащее тесты, которые требуется выполнить.
Создание определения построения
Создание определения построения
В Сред. Командный обозреватель щелкните командный проект, щелкните узел Построения правой кнопкой мыши и выберите Определение нового построения.
Отображается окно Определение построения.
В поле Имя определения построения введите имя для определения построения.
На панели навигации щелкните Параметры построения по умолчанию.
В поле Копировать выходные данные построения в следующую папку для размещения (путь UNC, например, \\server\share) укажите папку для выходных данных построения.
Можно задать общую папку на локальном компьютере или в любом сетевом расположении, для которого у процесса построения есть соответствующие разрешения.
На панели навигации щелкните значок Процесс.
В группе Обязательно окна Элементы для построения нажмите кнопку обзора (…).
В диалоговом окне Редактор списка проектов построения нажмите кнопку Добавить.
Укажите файл проекта (SLN), который был добавлен в систему управления версиями ранее при выполнении этого пошагового руководства, и нажмите кнопку ОК.
Решение отображается в списке Файлы проектов или решений для построения.
Нажмите кнопку ОК.
В группе Основные окна Автоматические тесты укажите тексты, которые требуется выполнить. По умолчанию выполняются тесты, содержащиеся в файлах с именем *test*.dll.
В меню Файл выберите команду Сохранить имя_проекта.
Определение построения создано. Теперь нужно изменить тестовый проект.
Запуск нового определения построения
Запуск нового типа построения
В Сред. Командный обозреватель разверните узел командного проекта и узел "Построения", щелкните правой кнопкой мыши определение построения, которое необходимо запустить, и выберите команду "Поставить новую сборку в очередь".
Откроется диалоговое окно Поставить в очередь {имя_командного_проекта} со списком всех имеющихся типов построений.
При необходимости в окне Определение построения выберите новое определение построения.
Убедитесь, что в полях Определение построения, Агент построения и Папка размещения для этого построения указаны соответствующие значения, а затем щелкните Поставить в очередь.
Появится вкладка В очереди обозревателя построений. Дополнительные сведения см. в разделе Управление завершенными построениями и их просмотр.
См. также
Задачи
Создание базового определения построения