Compartilhar via


Personalizando o fluxo de trabalho de gerenciamento de laboratório

Você pode usar o modelo padrão do laboratório (LabDefaultTemplate) com ambientes de laboratório para automatizar a compilação de seu aplicativo, a implantação da nova compilação em um ambiente de laboratório e a execução de testes na nova compilação. Para obter informações sobre como usar o modelo padrão do laboratório, consulte Criar um fluxo de trabalho compilar-implantar-testar para um ambiente SCVMM e Criar um fluxo de trabalho compilar-implantar-testar para um ambiente padrão. No entanto, cada compilação, implantação e processo de teste deve ser um pouco diferente por causa de requisitos distintos. Por exemplo, um fluxo de trabalho pode exigir a cópia dos binários de teste do local de compilação regular, enquanto outro fluxo de trabalho exige a cópia dos binários de teste de um local temporário. Ou um fluxo de trabalho pode exigir que um ambiente de laboratório seja salvo em uma biblioteca SCVMM para que os testadores possam implantá-lo, enquanto outro fluxo de trabalho não salva mesmo o ambiente de laboratório. Como o modelo padrão do laboratório é baseado no Windows Workflow 4.0, ele é totalmente extensível e personalizável, de forma que você possa personalizar LabDefaultTemplate para atender aos requisitos específicos. Este tópico descreve as etapas gerais para personalizar o modelo padrão do laboratório.

Requisitos

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

Eis alguns cenários onde a personalização do modelo padrão do laboratório é útil:

  • Specify the location of test binaries other than the build location.

  • Support application deployments that require a restart after installation.

  • Read source control files.

  • Access a build drop location using the build agent account.

  • Access other locations using the lab service account.

Os conceitos básicos da personalização de fluxo de trabalho

Há três conceitos principais envolvidos na personalização do fluxo de trabalho:

  • Modelo O modelo define a sequência de atividades ou etapas que fazem parte do fluxo de trabalho. O modelo é baseado no Windows Workflow Foundation 4.0 e é armazenado como um arquivo .xaml no Controle do Código-Fonte. Para carregar o modelo no Editor de Fluxo de Trabalho, clique duas vezes no arquivo .xaml. No Editor, você poderá ver as diversas atividades e sequências que determinam o fluxo de trabalho. Você pode usar variáveis com diferentes escopos, lógicas condicionais, loops etc. para programar o modelo, exatamente como você faria com qualquer outra linguagem de programação. O Windows Workflow Foundation permite que você personalize o modelo padrão do laboratório para atender às suas necessidades.

  • Atividades A atividade é o bloco de construção de um fluxo de trabalho, e o modelo padrão do laboratório usa muitas atividades. Você pode localizar atividades adicionais na Caixa de Ferramentas sob o título Atividades do Team Foundation Lab Management. Para usar uma atividade no fluxo de trabalho, arraste-a da caixa de ferramentas no Editor de Fluxo de Trabalho Visual Studio para o local apropriado no modelo. Você pode determinar os parâmetros de entrada e saída, analisando as propriedades da atividade. Para obter mais informações sobre cada atividade do Lab Management, consulte Atividades de fluxo de trabalho de gerenciamento de laboratório. Se as atividades que estiverem incluídas no produto forem insuficientes para atender às suas necessidades, você poderá adicionar novas atividades.

  • Argumentos Você pode criar novos argumentos de entrada para as entradas de que precisa do usuário e passar esses valores para atividades. Escolha a guia Argumentos na parte inferior da janela Editor de Fluxo de Trabalho para ver os argumentos existentes. Se você criar novos argumentos, eles aparecerão na seção Parâmetros do Processo de Compilação da guia Processo na definição de compilação.

Pense nesses conceitos conforme você examina os dois exemplos a seguir em que a personalização é necessária. O primeiro exemplo fala sobre como alterar o argumento de entrada de uma atividade existente no modelo, e o segundo exemplo fala sobre como adicionar novas atividades a partir da caixa de ferramentas. Esses exemplos devem fornecer contexto suficiente para personalizar o modelo padrão do laboratório, de acordo com suas necessidades.

Antes de iniciar a personalização

Há algumas etapas gerais que você deve concluir antes de começar a personalizar o modelo padrão do laboratório. O diagrama a seguir ilustra essas etapas.

Local da pasta de modelos de fluxo de trabalho padrão

Para se preparar para a personalização

  1. No Team Explorer, clique duas vezes no nó Controle do Código-Fonte de seu projeto da equipe.

  2. No Gerenciador do Controle do Código-Fonte, expanda a árvore Controle do Código-Fonte e localize a pasta $/<Project_Name>/BuildProcessTemplates.

  3. Mapeie essa pasta para uma pasta local, por exemplo, C:\Sources.

  4. Clique com o botão direito do mouse no arquivo LabDefaultTemplate.11.xaml e escolha Obter Última Versão.

  5. Faça uma cópia do arquivo LabDefaultTemplate.11.xaml e dê a ela um novo nome, por exemplo, LabDefaultTemplate_customize.11.xaml

  6. Adicione esse novo arquivo ao Controle do Código-Fonte.

  7. Clique duas vezes nesse novo arquivo. O arquivo será aberto no Editor de Fluxo de Trabalho do Visual Studio.

Em seguida, você personalizará a cópia que acabou de criar do modelo padrão do laboratório.

Personalização para especificar o local dos binários de teste diferente do local de destino da compilação

O modelo padrão de fluxo de trabalho, LabDefaultTemplate, pressupõe que o local dos binários de teste seja o mesmo do local onde as compilações são removidas. No entanto, em sua situação, o código de teste pode não ser compilado com o código do produto. Se isso ocorrer, convém personalizar o modelo para que os binários de teste sejam obtidos de um local diferente. Essa personalização envolve três etapas, conforme mostrado na ilustração a seguir.

Arrastar uma atividade LabManagement da caixa de ferramentas

Definindo um argumento de entrada do fluxo de trabalho para especificar o caminho de binários de teste

Para definir um argumento de entrada

  1. Na parte inferior da janela do editor de fluxo de trabalho, clique na guia Argumentos.

  2. Escolha Criar Argumento. Na caixa de texto, digite o nome do argumento, por exemplo, TestBinariesLocation. Na lista suspensa Direção, escolha Em. Na lista suspensa Tipo de argumento, escolha Cadeia de Caracteres.

Passando um valor de argumento para a atividade ExecuteRemoteTestRun

Essa atividade cria uma execução de teste remoto, aguarda até a execução do teste ser concluída e atualiza as informações de compilação com estatísticas de execução de teste.

Para passar o valor do argumento

  1. No editor de fluxo de trabalho, role até a atividade Executando Testes. Embora o nome para exibição da atividade seja Executando Testes, o tipo da atividade é ExecuteRemoteTestRun.

  2. Clique com o botão direito do mouse na atividade e escolha Propriedades. A janela Propriedades é aberta no canto inferior direito e exibe os argumentos de entrada e saída dessa atividade. Um dos argumentos de entrada dessa atividade é TestDirectory, que define o caminho do local dos binários de teste.

  3. Na janela Propriedades, clique em TestDirectory. No final da linha, clique nas reticências (…).

  4. No Editor de Expressões, digite TestBinariesLocation e escolha OK.

  5. No menu Arquivo, escolha Salvar LabDefaultTemplate_customize.11.xaml

  6. Na barra de menus do Gerenciador de Controle do Código-Fonte, escolha o ícone Check-in.

Agora você pode usar o arquivo .xaml personalizado para criar novas definições de compilação. O novo argumento de entrada TestBinariesLocation aparecerá na seção Div da guia Processo na definição da compilação, e você poderá atribuir um valor nessa seção.

Personalização para dar suporte a instaladores de aplicativo que exijam uma reinicialização do computador após a implantação

O modelo padrão do laboratório não reinicia o ambiente de laboratório depois que você implanta o aplicativo. Convém personalizar o modelo para dar suporte a aplicativos que possam exigir uma reinicialização depois que são implantados. Se implantasse o aplicativo manualmente em um ambiente de laboratório, você reiniciaria somente o computador onde o aplicativo foi instalado. Visual Studio Lab Management não dá suporte a operações em máquinas virtuais em um ambiente. Consequentemente, para reiniciar um computador, é necessário que todos os computadores no ambiente de laboratório sejam reiniciados.

Aviso

Verifique se os scripts de implantação nunca reiniciam o computador.Se isso ocorrer, o agente de compilação que estiver executando o script de implantação perderá a conexão com o controlador de compilação e o fluxo de trabalho poderá parar.

Reiniciar as máquinas virtuais depois que você implanta a nova compilação requer a adição de três atividades a LabDefaultTemplate:

  1. Parar o ambiente

  2. Iniciar o ambiente

  3. Aguarde as máquinas virtuais serem iniciadas antes de continuar com o restante do fluxo de trabalho.

Parar o ambiente

Você pode adicionar uma atividade de parada do ambiente ao modelo padrão de fluxo de trabalho arrastando a atividade StopLabEnvironment da Caixa de Ferramentas para o modelo de fluxo de trabalho e inicializando as variáveis de atividade.

Para parar o ambiente

  1. No editor de fluxo de trabalho, role para uma atividade com o nome para exibição Implantação de Aplicativo Bem-sucedida.

  2. No menu Exibir, escolha Caixa de Ferramentas. A caixa de ferramentas abre no lado esquerdo e exibe uma lista das Atividades do Team Foundation Build. Role a lista de atividades até ver a lista de Atividades do Team Foundation Lab Management.

  3. Na caixa de ferramentas, escolha a atividade StopLabEnvironment. Arraste-a para o Editor de Fluxo de Trabalho e a posicione antes da atividade Implantação de Aplicativo Bem-sucedida.

  4. Clique com o botão direito do mouse na atividade e clique em Propriedades. A janela de propriedades exibe os argumentos de entrada e de saída dessa atividade. Observe que o fluxo de trabalho já tem uma variável chamada LabEnvironmentUri, que referencia o URI de ambiente.

  5. Escolha a guia Variáveis. A lista de variáveis é exibida.

  6. Na linha LabEnvironmentUri e na coluna Padrão, clique duas vezes em Inserir uma Expressão do VB. Na caixa de texto, digite LabEnvironmentUri. O editor exibirá todos os usos existentes do parâmetro e você poderá selecionar o valor nessa lista, em vez de digitá-los.

Iniciar o ambiente

Você pode adicionar uma atividade de inicialização do ambiente ao modelo padrão de laboratório arrastando a atividade StartLabEnvironment da Caixa de Ferramentas para o modelo de fluxo de trabalho e inicializando as variáveis de atividade.

Para iniciar o ambiente

  1. Na caixa de ferramentas, escolha a atividade StartLabEnvironment. Arraste-a para o Editor de Fluxo de Trabalho e a posicione antes da atividade Implantação de Aplicativo Bem-sucedida, mas após a atividade StopLabEnvironment.

  2. Clique com o botão direito do mouse na atividade e clique em Propriedades. A janela de propriedades exibe os argumentos de entrada e de saída dessa atividade. Além disso, observe que o fluxo de trabalho já tem uma variável chamada LabEnvironmentUri, que referencia o URI de ambiente.

    Escolha a guia Variáveis. A lista de variáveis é exibida.

    Na linha LabEnvironmentUri e na coluna Padrão, clique duas vezes em Inserir uma Expressão do VB. Na caixa de texto, digite LabEnvironmentUri. O editor exibirá todos os usos existentes do parâmetro e você poderá selecionar o valor nessa lista, em vez de digitá-los.

Aguarde a reinicialização dos computadores antes de continuar com o restante de fluxo de trabalho.

Você pode adicionar tempo de espera para que as máquinas virtuais sejam iniciadas, arrastando a atividade Atraso da Caixa de Ferramentas para o modelo de fluxo de trabalho e inicializando as variáveis de atividade. Essa atividade está localizada na guia Primitivos da Caixa de Ferramentas.

Para aguardar as máquinas virtuais serem inicializadas

  1. Na Caixa de Ferramentas, escolha a guia Primitivos.

  2. Clique na atividade Atraso. Arraste-a para o Editor de Fluxo de Trabalho e a posicione antes da atividade Implantação de Aplicativo Bem-sucedida, mas após a atividade StartLabEnvironment.

  3. Clique com o botão direito do mouse na atividade e clique em Propriedades. A janela de propriedades exibe os argumentos de entrada e de saída dessa atividade. Observe que o fluxo de trabalho já tem uma variável chamada Duração, que referencia o tempo de espera.

  4. Na janela Propriedades, escolha a lista Duração e escolha as reticências (...).

  5. No Editor de Expressões, digite o tempo de espera (por exemplo, 10 minutos) no formato TimeSpan.FromMinutes (10).

Após você ter modificado esse modelo, verifique-o no Controle do Código-Fonte e use-o para criar uma nova definição de compilação a fim de implantar aplicativos que exijam a reinicialização após a instalação.

Personalização para ler arquivos de controle do código-fonte

Se você criar atividades personalizadas e usá-las em seu modelo de fluxo de trabalho, verifique se o agente de compilação, que se comunica usando a conta de serviço do laboratório, pode acessar essas atividades. Como essas atividades precisam ter check-in no sistema de controle do código-fonte como assemblies personalizados, você deve certificar-se de que essa conta de serviço de laboratório tenha permissão para ler o caminho no qual o check-in dos assemblies personalizados foi feito. Para obter mais informações sobre a conta de serviço de laboratório, consulte Como configurar a conta de serviço de laboratório Você pode conceder permissões para a conta de serviço do laboratório usando o comando tf permissions. Por exemplo, para conceder permissões de leitura à conta de serviço de laboratório mydomain\labAccount no caminho $/MyProject/CustomAssemblies, você tem que executar um comando semelhante a: C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE>tf permission /user:mydomain\labAccount /collection:http://aseemb-tfs11:8080/tfs/Collection0 /allow:read $/MyProject/CustomAssemblies

Personalização para acessar um local de destino de compilação usando a conta do agente de compilação

O agente de compilação que executa um fluxo de trabalho acessa o local de destino da compilação usando a conta de serviço do laboratório. Se quiser que o agente de compilação use a conta de agente de compilação em seu lugar, você poderá personalizar o modelo padrão do laboratório. No modelo, localize a atividade RunDeploymentScript que executa os scripts de implantação. Essa atividade expõe a propriedade SharedLocationForNetUse, que define o local que deve ser acessado usando a conta de serviço de laboratório. <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />Para acessar o local de destino na conta do agente de compilação em vez da conta de serviço de laboratório, exclua a propriedade do modelo ou defina o valor dessa propriedade como nulo ({x:Null}) como mostrado neste exemplo: mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />

Personalização para acessar outros locais usando a conta de serviço de laboratório

Se a execução do agente de compilação na conta de serviço de laboratório precisar ler locais diferentes do local de destino de compilação, você poderá alterar o valor da propriedade SharedLocationForNetUse do valor padrão [BuildLocation] para o local desejado. Por exemplo, para a execução do agente de compilação na conta de serviço de laboratório para acessar o diretório \\contoso\scripts, você deve ter: <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />

Consulte também

Tarefas

Criar ou editar uma definição de compilação

Conceitos

Atividades de fluxo de trabalho de gerenciamento de laboratório

Usando um ambiente de laboratório para o ciclo de vida do aplicativo

Definir o processo de compilação

Outros recursos

A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4 (Introdução de um desenvolvedor ao Windows Workflow Foundation (WF) sobre o .NET 4)