Настройка рабочего процесса Lab Management
Можно использовать шаблон лабораторий (по умолчанию) лабораторными LabDefaultTemplate с файлом, чтобы автоматизировать построения приложения, развертывание нового построения в лабораторной среде и выполнять тесты в новом построении.Дополнительные сведения об использовании лабораторного шаблона по умолчанию см. в разделе Практическое руководство. Создание рабочего процесса построения, развертывания и тестирования для среды SCVMM и Практическое руководство. Создание рабочего процесса построения, развертывания и тестирования для стандартной среды.Однако каждое построение, развертывание и процесс теста может быть немного отличается из-за разных требований.Например, для одного рабочего процесса может потребоваться копирование двоичных файлов теста из расположения обычного построения, тогда как для другого процесса необходимо копирование двоичных файлов теста из временного расположения.Или один рабочий процесс может потребовать лабораторной среды сохраняется в библиотеке SCVMM что тест-инженеры могут развертывать ее, в то время как другой рабочий процесс не сохраняет лабораторной среды.Поскольку шаблон по умолчанию лабораторий основанных на рабочем процессе 4.0 windows, он полностью является расширяемым и настраиваемым, поэтому можно настраивать LabDefaultTemplate, чтобы удовлетворять конкретным требованиям.В этом разделе описаны общие шаги настройки шаблона по умолчанию лаборатории.
Требования
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional
Ниже приведены некоторые сценарии, когда настройка шаблона по умолчанию лабораторий эффективна:
Указание расположения двоичных файлов теста, отличного от расположения сброса построения
Настройка поддержки установщиков приложений, требующих перезагрузки компьютера после развертывания
Настройка чтения файлов системы управления версиями
Настройка доступа к расположению сброса построения с помощью учетной записи агента построения
Настройка доступа к другим расположениям с помощью учетной записи службы лаборатории
Основные понятия настройки рабочего процесса
Для настройки рабочего процесса необходимо знать три ключевых понятия.
Шаблон. Шаблон определяет последовательность действий или шагов, входящих в рабочий процесс.Шаблон основан на Windows Workflow Foundation 4.0 и хранится в виде XAML-файла в системе управления версиями.Чтобы загрузить шаблон в редактор рабочих процессов, дважды щелкните XAML-файл.В редакторе будут показаны различные действия и последствия, характерные для рабочего процесса.Для программирования шаблона можно использовать переменные с различными областями действия, условную логику, циклы и так далее — аналогично любому другому языку программирования.Windows Workflow Foundation позволяет настраивать шаблон лаборатории по умолчанию в зависимости от конкретных потребностей.
Действия. Действие представляет собой стандартный блок рабочего процесса, и шаблон лаборатории по умолчанию использует множество действий.Дополнительные действия указаны на панели инструментов под заголовком Действия Team Foundation Lab Management.Чтобы использовать действие в рабочем процессе, перетащите его с панели инструментов в редактор рабочих процессов Visual Studio, в соответствующее расположение в шаблоне.Входные и выходные параметры можно определить, если просмотреть свойства действия.Дополнительные сведения о каждом действии Lab Management см. в разделе Действия рабочего процесса Lab Management.Если входящих в продукт действий недостаточно для удовлетворения требований, можно добавить новые действия.
Аргументы. Предусмотрена возможность создания новых входных аргументов для входных данных, которые необходимо получить от пользователей, и передачи этих значений действиям.Выберите вкладку внизу окна редактора Аргументы рабочего процесса, чтобы просмотреть существующие аргументы.После создания нового аргумента он появится в разделе Параметры процесса построения на вкладке Процесс в определении построения.
Помните об этих основных понятиях по мере рассмотрения следующих двух примеров, в которых требуется настройка.В первом примере рассмотрен способ изменения входного аргумента существующего действия в шаблоне, а во втором — способ добавления новых действий с панели инструментов.Эти примеры, необходимо предоставить достаточный контекст можно настраивать шаблон по умолчанию лабораторий в соответствии с требованиями.
Перед началом настройки
Некоторые общие шаги, которые необходимо выполнить до начала настройки шаблона по умолчанию лаборатории.Они показаны на следующей схеме.
Подготовка к настройке
В Team Explorer дважды щелкните узел Система управления версиями для командного проекта.
В обозревателе управления исходным кодом разверните дерево системы управления версиями и найдите папку $/<Project_Name>/BuildProcessTemplates.
Сопоставьте эту папку с локальной папкой (например, C:\Sources).
Щелкните правой кнопкой мыши файл LabDefaultTemplate.11.xaml а затем выберите Получить последнюю версию.
Создать копию файла LabDefaultTemplate.11.xaml и присвойте ей новое имя, например LabDefaultTemplate_customize.11.xaml
Добавьте этот новый файл в систему управления версиями.
Дважды щелкните этот новый файл.Файл откроется в редакторе рабочих процессов Visual Studio.
Далее вы настраиваете копии необходимо только сделать из шаблона по умолчанию лаборатории.
Указание расположения двоичных файлов теста, отличного от расположения сброса построения
Шаблон рабочего процесса по умолчанию LabDefaultTemplate полагает, что расположение двоичных файлов теста аналогично расположению, в которое сбрасываются построения.Однако в этой ситуации тестовый код может и не быть создан наряду с кодом продукта.В таком случае, возможно, потребуется настроить шаблон, чтобы двоичные файлы теста забирались из другого расположения.Такая настройка осуществляется за три шага, как показано на рисунке ниже.
Определение входного аргумента рабочего процесса для указания пути к двоичным файлам теста
Определение входного аргумента
Перейдите на вкладку Аргументы в нижней части окна редактора рабочих процессов.
Выберите Создать аргумент.Введите в текстовое поле имя аргумента, например TestBinariesLocation.В раскрывающемся списке Направление выберите переместить.В раскрывающемся списке Тип аргумента выберите Строка.
Передача значения аргумента действию ExecuteRemoteTestRun
Это действие выполняет удаленный тестовый запуск, ждет его окончания и обновляет сведения о построении в соответствии со статистикой тестового запуска.
Передача значения аргумента
В редакторе рабочих процессов перейдите к действию Запущенные тесты.Несмотря на то что отображаемое имя этого действия "Запущенные тесты", тип действия — ExecuteRemoteTestRun.
Щелкните правой кнопкой мыши действие, а затем выберите Свойства.Откроется окно Свойства в правом нижнем углу, в котором будут показаны входные и выходные аргументы этого действия.Одним из входных аргументов этого действия является TestDirectory, который задает путь расположения двоичных файлов теста.
В окне Свойства выберите TestDirectory.В конце строки нажмите кнопку с многоточием (...).
В Редактор выражений, тип TestBinariesLocation а затем выберите ОК.
В меню Файл выберите *** Сохраните LabDefaultTemplate_customize.11.xaml ***
В строке меню обозревателя управления исходным кодом выберите значок вернуть.
Теперь для создания новых определений построения можно использовать настроенный XAML-файл.Новый входной аргумент TestBinariesLocation появится в разделе Прочее на вкладке Процесс в определении построения, где можно задать значение.
Настройка поддержки установщиков приложений, требующих перезагрузки компьютера после развертывания
По умолчанию шаблон лабораторий не перезапускает лабораторная среда после развертывания приложения.Возможно, потребуется настроить шаблон, чтобы он поддерживал приложения, для которых может требоваться перезагрузка после развертывания.Если развертывание вручную приложения в лабораторной среде, перезагрузитьTfи бы только компьютер, где приложение было установленно.Visual Studio Lab Management не поддерживает операции на виртуальных машинах среды.Следовательно, чтобы перезапустить один компьютер требуется, чтобы были перезапускаются все компьютеры в лабораторной среде.
Внимание |
---|
Убедитесь, что сценарий развертывания не перезагружают компьютер.Если это все же произойдет, агент построения, выполняющий скрипт развертывания, потеряет связь с контроллером построения и рабочий процесс может остановиться. |
Перезапустите виртуальные машины после развертывания нового построения требуется добавить 3 к LabDefaultTemplate действия:
Остановка среды
Запуск среды
Ожидание запуска виртуальных машин перед продолжением остальной части рабочего процесса.
Остановка среды
Чтобы добавить действие по остановке среды в шаблон рабочего процесса по умолчанию, можно перетащить действие StopLabEnvironment с панели инструментов в шаблон рабочего процесса и инициализировать переменные действия.
Остановка среды
В редакторе рабочих процессов перейдите к действию с отображаемым именем Успешное развертывание приложения.
В меню Вид выберите Панель элементов.После этого в левой части откроется панель инструментов и будет показан список Действия Team Foundation Build.Найдите в списке Действия Team Foundation Lab Management.
В области элементов, выберите действие StopLabEnvironment.Перетащите его в редактор рабочих процессов и разместите перед действием Успешное развертывание приложения.
Щелкните правой кнопкой мыши действие и выберите пункт Свойства.В окне свойства будут показаны входные и выходные аргументы этого действия.Обратите внимание, что рабочий процесс имеет переменную с именем LabEnvironmentUri, которая относится к URI среды.
Выберите вкладку Переменные.Отобразится список переменных.
В строке LabEnvironmentUri, под столбцом По умолчанию дважды щелкните Введите выражение VB.В текстовом поле введите LabEnvironmentUri.Редактор покажет все существующие варианты использования параметра, и вместо ввода значения его можно выбрать в списке.
Запуск среды
Можно добавить действие среды запуска в шаблон по умолчанию лаборатории, перетащив действия StartLabEnvironment из Панель элементов в шаблон рабочего процесса и инициализации переменных действия.
Запуск среды
В области элементов, выберите действие StartLabEnvironment.Перетащите его в редактор рабочих процессов и разместите перед действием Успешное развертывание приложения, но после действия StopLabEnvironment.
Щелкните правой кнопкой мыши действие и выберите пункт Свойства.В окне свойства будут показаны входные и выходные аргументы этого действия.Снова обратите внимание, что рабочий процесс имеет переменную с именем LabEnvironmentUri, которая относится к URI среды.
Выберите вкладку Переменные.Отобразится список переменных.
В строке LabEnvironmentUri, под столбцом По умолчанию дважды щелкните Введите выражение VB.В текстовом поле введите LabEnvironmentUri.Редактор покажет все существующие варианты использования параметра, и вместо ввода значения его можно выбрать в списке.
Ожидание перезапуска виртуальных машин перед продолжением остальной части рабочего процесса
Чтобы добавить время ожидания перед запуском виртуальных машин, можно перетащить действие Задержка с панели инструментов в шаблон рабочего процесса и инициализировать переменные действия.Это действие находится на вкладке Примитивы на панели инструментов.
Ожидание запуска виртуальных машин
В панели элементов выберите вкладку Примитивы.
Щелкните действие Задержка.Перетащите его в редактор рабочих процессов и разместите перед действием Успешное развертывание приложения, но после действия StartLabEnvironment.
Щелкните правой кнопкой мыши действие и выберите пункт Свойства.В окне свойства будут показаны входные и выходные аргументы этого действия.Обратите внимание, что рабочий процесс имеет переменную с именем Duration, которая относится к времени ожидания.
В окне Свойства выберите Длительность а затем нажмите кнопку с многоточием (…).
В редакторе выражений введите время ожидания (например, 10 минут) в формате TimeSpan.FromMinutes(10).
После изменения этого шаблона верните его в систему управления версиями и используйте его для создания нового определения построения, чтобы разворачивать приложения, требующие перезагрузки после установки.
Настройка чтения файлов системы управления версиями
При создании пользовательских действий и затем использовать их в шаблоне рабочего процесса, убедитесь, что агент построения, который взаимодействует с помощью учетной записи службы лаборатории, может обращаться к этим действия.Поскольку эти действия необходимо вернуть в систему управления версиями в качестве настраиваемых сборок, убедитесь, что учетная запись службы лаборатории имеет разрешение на чтение пути, по которому возвращаются настраиваемые сборки.Дополнительные сведения об учетной записи службы лаборатории см. в разделе Практическое руководство. Настройка учетной записи службы лаборатории. Разрешения для учетной записи службы можно предоставить с помощью команды tf permissions.Например, чтобы предоставить разрешение на чтение для учетной записи службы лаборатории mydomain\labAccount, расположенной в $/MyProject/CustomAssemblies, необходимо выполнить команду, аналогичную C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE>tf permission /user:mydomain\labAccount /collection:http://aseemb-tfs11:8080/tfs/Collection0 /allow:read $/MyProject/CustomAssemblies
Настройка доступа к расположению сброса построения с помощью учетной записи агента построения
Агент построения, который выполняет доступ рабочего процесса расположение удаления построения с использованием учетной записи службы лаборатории.Если требуется, чтобы агент построения использовать учетную запись агента построения вместо, можно настраивать шаблон по умолчанию лаборатории.В шаблоне найдите действие RunDeploymentScript, выполняющее скрипты развертывания.Это действие предоставляет доступ к свойству SharedLocationForNetUse, определяющему расположение, к которому необходим доступ с помощью учетной записи службы лаборатории.<mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />. Чтобы получить доступ к расположению сброса под учетной записью агента построения вместо учетной записи службы лаборатории, удалите свойство из шаблона или задайте значение этого свойства как NULL ({x:Null}), как показано в следующем примере: mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />.
Настройка доступа к другим расположениям с помощью учетной записи службы лаборатории
Если агент построения, который выполняется под учетной записью службы лаборатории, должен считывать расположения, отличные от расположения сброса построений, можно изменить значение свойства SharedLocationForNetUse со значения по умолчанию [BuildLocation] на необходимое расположение.Например, для агента построения, который выполняется под учетной записью службы и которому требуется доступ к каталогу \\contoso\scripts, код должен выглядеть следующим образом: <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />.
См. также
Задачи
Создание определения построения
Ссылки
A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4
Основные понятия
Действия рабочего процесса Lab Management
Использование лабораторной среды в жизненном цикле приложения