Практическое руководство. Запуск модульных тестов SQL Server из построения Team Foundation

 

Построение Team Foundation Build можно использовать для запуска модульных тестов SQL Server в качестве части теста проверки построения (BVT).Модульные тесты можно настроить так, чтобы сначала выполнялось развертывание базы данных, формировались тестовые данные, а затем запускались выбранные тесты.Если вы раньше не работали с построением Team Foundation Build, то перед выполнением процедур данного раздела ознакомьтесь со следующими сведениями.

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

  • Установка построения Team Foundation Build и управления версиями Team FoundationВероятно, вам необходимо будет установить построение Team Foundation Build и управление версиями Team Foundation на разные компьютеры.

  • Установите MicrosoftSQL Server Data Tools Build Utilities на тот же компьютер, на котором установлена сборка Team Foundation.Чтобы установить SQL Server Data Tools Build Utilities, сначала создайте административную точку установки.Дополнительные сведения об административной точке установки см. в разделе Установка базовой версии SQL Server Data Tools.Затем установите на сервер построения SSDTBuildUtilties.msi из расположения (/расположение), которое используется в качестве административной точки установки.

  • Подключитесь к экземпляру Visual Studio Team Foundation Server.

После настройки рабочей среды выполните следующие действия.

  1. Создайте проект базы данных.

  2. Импортируйте или создайте схему и объекты для проекта базы данных.

  3. Настройте свойства построения и развертывания проекта базы данных.

  4. Создайте один или несколько модульных тестов.

  5. Добавьте решение, содержащее проект базы данных и проект модульных тестов, в систему управления версиями и поместите в нее все файлы.

В приведенных в этом разделе инструкциях описывается создание определения построения для запуска модульных тестов в рамках автоматизированного выполнения теста.

  1. Настройка параметров теста для запуска модульных тестов БД в 64-разрядном агенте построения

  2. Назначение категорий тестам (необязательно)

  3. Изменение проекта тестов

  4. Внесение решения в систему управления версиями

  5. Создание определения построения

  6. Запуск нового определения построения

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

При выполнении модульных тестов на компьютере построения возможна ситуация, когда модульные тесты не могут найти файлы проектов базы данных (SQLPROJ-файлы).Такая ошибка возникает из-за того, что файл app.config ссылается на эти файлы с помощью относительных путей.Также запуск модульных тестов может завершиться неудачей, если не будет найден экземпляр SQL Server, который задан в качестве средства запуска модульных тестов.Такая ошибка может возникнуть, если строки подключения, хранимые в файле app.config, не являются действительными при запуске на компьютере построения.

Для устранения этих проблем нужно указать раздел переопределения в файле app.config, который переопределяет файл app.config файлом конфигурации для вашей среды Team Foundation Build.Дополнительные сведения см. далее в подразделе Изменение проекта тестов.

Настройка параметров теста для запуска модульных тестов SQL Server в 64-разрядном агенте построения

Перед запуском модульных тестов в 64-разрядном агенте построения следует изменить параметр теста «Платформа хост-процесса».

Задание платформы хост-процесса

  1. Откройте решение, содержащее проект тестов, для которого нужно настроить параметры.

  2. В папке Элементы решения в обозревателе решений дважды щелкните файл Local.testsettings.

    Откроется диалоговое окно Параметры теста.

  3. Щелкните в списке элемент Хосты.

  4. В разделе области сведений Платформа хост-процесса выберите MSIL, чтобы тесты запускались на 64-разрядном агенте построения.

  5. Нажмите кнопку Применить.

Назначение категорий тестам (необязательно)

Обычно при создании определения построения для запуска модульных тестов указывается одна или несколько категорий тестов.При запуске построения выполняются все тесты из заданных категорий.

Назначения категорий тестам

  1. Откройте окно Представление теста.

  2. Выберите тест.

  3. На панели свойств выберите пункт Категории тестов и затем нажмите кнопку с многоточием (…)в крайнем правом столбце.

  4. В окне Категория теста в поле Добавление новой категории введите имя новой категории теста.

  5. Нажмите кнопку Добавить, а затем нажмите ОК.

    Тесту будет назначена новая категория. Также она будет доступна для выбора в свойствах других тестов.

Изменение проекта тестов

По умолчанию при построении проекта модульных тестов Team Foundation Build создает файл конфигурации на основе файла проекта app.config.Путь к проекту базы данных сохраняется как относительный путь в файле app.config.Относительные пути, работающие в Visual Studio, работать не будут, поскольку Team Foundation Build помещает построенные файлы в другие расположения в зависимости от того, где запускаются модульные тесты.Также файл app.config содержит строки подключения, определяющие тестируемую базу данных.Если модульные тесты должны подключаться к базе данных, отличной от той, что была указана при создании проекта тестов, вам также потребуется отдельный файл app.config для Team Foundation Build.Внеся изменения в последующую процедуру, можно настроить проект тестов и сервер построения так, чтобы Team Foundation Build использовал другую конфигурацию.

Важно!

Эту процедуру необходимо выполнить для каждого проекта тестов (файл с расширением VBPROJ или VSPROJ).

Задание файла app.config для службы построения Team Foundation Build

  1. Щелкните правой кнопкой мыши файл App.config в обозревателе решений и выберите пункт Копировать.

  2. Щелкните правой кнопкой мыши проект теста и выберите команду Вставить.

  3. Щелкните правой кнопкой мыши файл с именемКопия app.config и выберите пункт «Переименовать».

  4. Введите BuildComputer**.sqlunitttest.config** и нажмите клавишу ВВОД, где BuildComputer — это названием компьютера, на котором выполняется агент сборки.

  5. Дважды щелкните BuildComputer. sqlunitttest.config.

    Файл конфигурации откроется в редакторе.

  6. Измените относительный путь к файлу с расширением SQLPROJ, добавив папку Sources и вложенную в нее папку с именем, совпадающим с именем решения.Например, если изначально файл конфигурации содержит следующую запись:

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\Database3\Database3.sqlproj"      Configuration="Debug" />
    

    Измените файл следующим образом:

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\Database3\Database3.sqlproj"      Configuration="Debug" />
    

    По окончании ваш файл BuildComputer.sqlunitttest.config должен стать похожим на следующий пример, если вы используете Visual Studio 2010:

    <SqlUnitTesting_VS2010>
        <DatabaseDeployment DatabaseProjectFileName="..\..\..\Database4\Database4.sqlproj"
            Configuration="Debug" />
        <DataGeneration ClearDatabase="true" />
        <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\Projects;Initial Catalog=Database4;Integrated Security=True;Pooling=False"
            CommandTimeout="30" />
        <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\Projects;Initial Catalog=Database4;Integrated Security=True;Pooling=False"
            CommandTimeout="30" />
    </SqlUnitTesting_VS2010>
    

    Или если вы используете Visual Studio 2012:

    <SqlUnitTesting_VS2012>
            <DatabaseDeployment DatabaseProjectFileName="..\..\..\Database4\Database4.sqlproj"
                Configuration="Debug" />
            <DataGeneration ClearDatabase="true" />
            <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\Projects;Initial Catalog=Database4;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
            <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\Projects;Initial Catalog=Database4;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
        </SqlUnitTesting_VS2012>
    
  7. Измените атрибут ConnectionString для контекстов ExecutionContext и PrivilegedContext, чтобы указать подключения к целевой базе данных, в которой нужно выполнять развертывание.

  8. В меню Файл выберите команду Сохранить все.

  9. В обозревателе решений дважды щелкните файл app.config.

  10. В редакторе для каждого узла < SqlUnitTesting_VSVersion> добавьте AllowConfigurationOverride="true".Например:

    -- Update SqlUnitTesting_VS2010 node to:
    <SqlUnitTesting_VS2010 AllowConfigurationOverride="true"> 
    
    -- Update SqlUnitTesting_VS2012 node to:
    <SqlUnitTesting_VS2012 AllowConfigurationOverride="true">
    

    Подобное изменение позволяет Team Foundation Build использовать созданный переопределяющий файл конфигурации.

  11. В меню Файл выберите команду Сохранить все.

    Далее следует включить в файл Local.testsettings измененный файл конфигурации.

Изменение файла Local.testsettings для развертывания пользовательского файла конфигурации

  1. В обозревателе решений дважды щелкните файл Local.testsettings.

    Откроется диалоговое окно Параметры теста.

  2. В списке категории выберите пункт Развертывание.

  3. Установите флажок Включить развертывание.

  4. Щелкните Добавить файл.

  5. В диалоговом окне Добавление файлов развертывания укажите созданный вами файл BuildComputer.sqlunitttest.config.

  6. Нажмите кнопку Применить.

  7. Щелкните Закрыть.

  8. В меню Файл выберите команду Сохранить все.

    Далее внесите решение в систему управления версиями.

Внесение решения в систему управления версиями

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

System_CAPS_noteПримечание

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

Внесение решения в систему управления версиями

  1. Подключитесь к компьютеру, на котором работает Team Foundation Server.

    Дополнительные сведения см. в разделе Использование обозревателя системы управления версиями.

  2. Добавьте решение в систему управления версиями, если оно еще туда не добавлено.

    Дополнительные сведения см. в разделе Добавление проекта или решения в систему управления версиями.

  3. В меню Вид выберите пункт Извлеченные элементы.

  4. Внесите в систему все файлы решения.

    Дополнительные сведения см. в разделе Внесение незавершенных изменений в систему управления версиями.

    System_CAPS_noteПримечание

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

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

    Ваши тесты доступны для Team Foundation Build.Теперь можно создать определение построения, содержащее тесты, которые должны запускаться.

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

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

  1. В командном обозревателе выберите проект группы, щелкните правой кнопкой мыши узел Построения и выберите команду Создать определение построения.

    Откроется окно Создание определения построения.

  2. В поле Имя определения построения введите подходящее имя.

  3. На панели навигации выберите Параметры построения по умолчанию.

  4. В поле Копировать выходные данные построения в следующую папку для размещения (UNC-путь, например \\сервер\общий_ресурс) укажите папку, куда будут помещаться результаты построения.

    Можно указать общую папку на локальном компьютере или сетевое расположение, к которому у процесса построения есть разрешения.

  5. На панели навигации выберите Обработать.

  6. В группе Обязательные в разделе Элементы для сборки нажмите кнопку обзора (…).

  7. В диалоговом окне Редактор списка построения проекта нажмите кнопку Добавить.

  8. Укажите файл решения (с расширением SLN), который был ранее добавлен в систему управления версиями, и нажмите кнопку ОК.

    Решение появится в списке Файлы проектов и решений к построению.

  9. Нажмите кнопку ОК.

  10. В группе Базовые раздела Автоматизированные тесты укажите тесты, которые нужно запускать.По умолчанию будут запускать тесты из файлов решения с именем *test*.dll.

  11. В меню Файл выберите команду СохранитьProjectName.

    Процесс создания определения построения завершен.Далее следует изменить проект тестов.

Запуск нового определения построения

Запуск нового типа построения

  1. В командном обозревателе разверните узел проекта группы, разверните узел «Построения», щелкните правой кнопкой мыши запускаемое определение построения и выберите команду «Поставить новую сборку в очередь».

    Откроется диалоговое окно Очередь сборки {TeamProjectName} со списком всех существующих типов сборки.

  2. При необходимости выберите новое определение построения в поле Определение построения.

  3. Проверьте правильность значений в полях Определение построения, Агент построения и Папка для размещения этого построения и щелкните Поставить в очередь.

    Откроется вкладка В очередиобозревателя построений.Дополнительные сведения см. в разделе Просмотр готовых сборок и управление ими (Visual Studio 2010) или Управление сборками и обозревателем сборок (Visual Studio 2012).

См. также

Выполнение модульных тестов SQL Server
Создание простого определения построения
Помещение построения в очередь
Отслеживание выполнения запуска построения