Compartir a través de


Personalizar flujos de trabajo de Lab Management

 

Publicada: julio de 2016

Puede usar la plantilla predeterminada de laboratorio (LabDefaultTemplate) con entornos de laboratorio para automatizar la compilación de la aplicación, implementar la nueva compilación en un entorno de laboratorio y ejecutar pruebas en la nueva compilación. Para obtener información sobre cómo usar la plantilla predeterminada de laboratorio, consulte Crear un flujo de trabajo de compilación-implementación-prueba para un entorno SCVMM y Crear un flujo de trabajo de compilación-implementación-prueba para un entorno estándar. Sin embargo, cada proceso de compilación-implementación-prueba podría ser ligeramente distinto, debido a las diferencias entre los requisitos. Por ejemplo, un flujo de trabajo podría requerir copiar los binarios de probar la ubicación normal de compilación mientras otro flujo de trabajo requiere copiar los binarios de prueba de una ubicación temporal. También puede ocurrir que un flujo de trabajo requiera que el entorno esté almacenado en la biblioteca de SCVMM para que cada evaluador pueda implementarlo, mientras que otro flujo de trabajo no guarde el entorno en absoluto. Dado que la plantilla predeterminada de laboratorio se basa en Windows Workflow 4.0, es totalmente extensible y personalizable. Por ello, puede personalizar LabDefaultTemplate para que se ajuste a sus requisitos concretos. Este tema describe los pasos generales para personalizar la plantilla predeterminada de laboratorio.

Requisitos

  • Visual Studio Enterprise, Visual Studio Test Professional

Estos son algunos escenarios en los que resulta útil personalizar la plantilla predeterminada de laboratorio:

  • Personalizar para especificar la ubicación de los archivos binarios de pruebas distinta de la ubicación de destino de la compilación

  • Personalización para admitir instaladores de aplicación que requieren un reinicio del equipo después de la implementación

  • Personalización para leer los archivos de control de código fuente

  • Personalización para tener acceso a una ubicación de destino de compilación mediante la cuenta del agente de compilación

  • Personalización para tener acceso a otras ubicaciones mediante la cuenta de servicio Lab

Conceptos básicos de personalización de flujo de trabajo

Hay tres conceptos clave que participan en la personalización del flujo de trabajo:

  • Plantilla la plantilla define la secuencia de actividades o pasos que forman parte del flujo de trabajo. La plantilla se basa en Windows Workflow Foundation 4.0 y se almacena como un archivo .xaml en el control de código fuente. Para cargar la plantilla en el editor del flujo de trabajo, haga doble clic en el archivo .xaml. En el editor, podrá ver las diferentes actividades y secuencias que determinan el flujo de trabajo. A continuación, puede utilizar variables con distintos ámbitos, lógica condicional, bucles, etc., para programar la plantilla, igual que haría con cualquier otro lenguaje de programación. Windows Workflow Foundation permite personalizar la plantilla predeterminada de laboratorio para adaptarla a sus necesidades.

  • Actividades la actividad es el bloque de creación de un flujo de trabajo y la plantilla predeterminada de laboratorio utiliza muchas actividades. Puede encontrar las actividades adicionales en el Cuadro de herramientas bajo Team Foundation Lab Management Activities. Para utilizar una actividad en el flujo de trabajo, arrástrelo desde el cuadro de herramientas del Editor de flujo de trabajo de Visual Studio a la ubicación adecuada en la plantilla. Puede determinar los parámetros de entrada y salida examinando las propiedades de la actividad. Para obtener más información sobre las actividades de Lab Management, consulte Actividades del flujo de trabajo de Lab Management. Si las actividades que se incluyen con el producto son escasas para cumplir los requisitos, puede agregar nuevas actividades.

  • Argumentos puede crear nuevos argumentos de entrada para las entradas que necesita de usuario y pasar estos valores a las actividades. Elija la pestaña Argumentos en la parte inferior de la ventana del editor de flujo de trabajo para ver los argumentos existentes. Si crea nuevos argumentos, aparecerán en la sección Parámetros del proceso de compilación de la pestaña Proceso en la definición de compilación.

Piense en estos conceptos cuando revise los dos ejemplos siguientes donde es necesaria la personalización. El primer ejemplo habla de cómo cambiar el argumento de una actividad existente en la plantilla y el segundo ejemplo habla de cómo agregar nuevas actividades del cuadro de herramientas. Estos ejemplos deberían proporcionarle contexto suficiente para personalizar la plantilla predeterminada de laboratorio de acuerdo con sus requisitos.

Antes de iniciar la personalización

Hay algunos pasos generales que debe completar antes de empezar a personalizar la plantilla predeterminada de laboratorio. El diagrama siguiente muestra estos pasos.

Ubicación de carpetas para plantillas de flujo de trabajo predeterminadas

Para prepararse para la personalización

  1. En Team Explorer, haga doble clic en el nodo Control de código fuente de su proyecto de equipo.

  2. En el Explorador de control de código fuente, expanda el árbol de Control de código fuente y busque la carpeta $/<Nombre_proyecto>/BuildProcessTemplates.

  3. Asigne esta carpeta a una carpeta local, por ejemplo, C:\Sources.

  4. Haga clic con el botón secundario en el archivo LabDefaultTemplate.11.xaml y, a continuación, elija Obtener la última versión.

  5. Cree una copia del archivo LabDefaultTemplate.11.xaml y asígnele un nombre nuevo, por ejemplo, LabDefaultTemplate_customize.11.xaml.

  6. Agregue este nuevo archivo al control de código fuente.

  7. Haga doble clic en este nuevo archivo. El archivo se abrirá en Visual Studio Workflow Editor.

A continuación, debe personalizar la copia que acaba de crear de la plantilla predeterminada de laboratorio.

Personalizar para especificar la ubicación de los archivos binarios de pruebas distinta de la ubicación de destino de la compilación

La plantilla de flujo de trabajo predeterminada, LabDefaultTemplate, supone que la ubicación de los archivos binarios de la prueba es igual que la ubicación donde se colocan compilaciones. Sin embargo, en su caso, el código de prueba podría no compilarse junto al código del producto. Si ocurre esto, es posible que desee personalizar la plantilla para tomar los binarios de pruebas de una ubicación diferente. Esta personalización implica tres pasos tal y como se muestra en la ilustración siguiente.

Arrastrar una actividad LabManagemente desde el cuadro de herramientas

Definición de un argumento de flujo de trabajo para especificar la ruta de acceso de los archivos binarios de pruebas

Para definir un argumento

  1. En la parte inferior de la ventana del editor del flujo de trabajo, haga clic en la pestaña Argumentos.

  2. Elija Crear argumento. En el cuadro de texto, escriba el nombre del argumento, por ejemplo, TestBinariesLocation. En la lista desplegable Dirección, elija Entrada. En la lista desplegable Tipo de argumento, elija Cadena.

Pasar un valor de argumento de la actividad ExecuteRemoteTestRun

Esta actividad crea una prueba remota, espera hasta que finaliza la prueba y, a continuación, actualiza la información de compilación con las estadísticas de pruebas.

Para pasar el valor de argumento

  1. En el editor del flujo de trabajo, desplácese a la actividad Ejecutando pruebas. Aunque el nombre para mostrar de la actividad es Ejecutando pruebas, el tipo de actividad es ExecuteRemoteTestRun.

  2. Haga clic con el botón secundario en la actividad y, a continuación, elija Propiedades. La ventana Propiedades se abre en la esquina inferior derecha, y muestra los argumentos de entrada y salida de esta actividad. Uno de los argumentos de entrada de esta actividad es TestDirectory, que establece la ruta de acceso a la ubicación de los archivos binarios de la prueba.

  3. En la ventana Propiedades, haga clic en TestDirectory. Al final de la fila haga clic en los puntos suspensivos (...).

  4. En el Editor de expresiones, escriba TestBinariesLocation y, a continuación, elija Aceptar.

  5. En el menú Archivo, elija Guardar LabDefaultTemplate_customize.11.xaml.

  6. En la barra de menús del Explorador de control de código fuente, elija el icono Proteger.

Ahora puede utilizar el archivo .xaml personalizado para crear nuevas definiciones de compilación. El nuevo argumento TestBinariesLocation aparecerá en la sección Varios de la pestaña Proceso en la definición de compilación y, puede asignar un valor.

Personalización para admitir instaladores de aplicación que requieren un reinicio del equipo después de la implementación

La plantilla predeterminada de laboratorio no reinicia el entorno de laboratorio después de implementar la aplicación. Es posible que desee personalizar la plantilla para admitir aplicaciones que requieren un reinicio después de que se implementan. Si se implementara manualmente la aplicación en un entorno de laboratorio, se volvería a iniciar solo la máquina en la que se instaló la aplicación. Visual Studio Lab Management no admite las operaciones en máquinas virtuales en un entorno. Por consiguiente, para reiniciar una máquina es preciso reiniciar todas las máquinas del entorno de laboratorio.

Advertencia

Asegúrese de que los scripts de implementación nunca reinicien la máquina.Si ocurre esto, el agente de compilación que ejecuta el script de implementación perderá la conexión con el controlador de compilación y el flujo de trabajo puede detenerse.

Reiniciar las máquinas virtuales después de implementar la nueva compilación requiere agregar tres actividades a LabDefaultTemplate:

  1. Detener el entorno

  2. Iniciar el entorno

  3. Espere a que las máquinas virtuales se inicien antes de continuar con el resto del flujo de trabajo.

Detener el entorno

Puede agregar una actividad para detener el entorno a la plantilla de flujo de trabajo predeterminada arrastrando la actividad StopLabEnvironment del Cuadro de herramientas a la plantilla de flujo de trabajo e inicializando las variables de la actividad.

Para detener el entorno

  1. En el editor del flujo de trabajo, desplácese a una actividad con nombre para mostrar La aplicación se implementó correctamente.

  2. En el menú Ver, elija Cuadro de herramientas. Se abrirá el cuadro de herramientas en el lado izquierdo y se mostrará una lista de Actividades de Team Foundation Build. Desplácese por la lista de actividades hasta que vea la lista de Team Foundation Lab Management Activities.

  3. En el cuadro de herramientas, elija la actividad StopLabEnvironment. Arrástrela al editor del flujo de trabajo y póngala delante de la actividad La aplicación se implementó correctamente.

  4. Haga clic con el botón secundario en la actividad y, a continuación, haga clic en Propiedades. La ventana Propiedades muestra los argumentos de entrada y salida de esta actividad. Observe que el flujo de trabajo ya tiene una variable denominada LabEnvironmentUri que hace referencia al identificador URI del entorno.

  5. Elija la pestaña Variables. La lista de variables se muestra.

  6. En la fila de LabEnvironmentUri y en la columna Predeterminada, haga doble clic en Escriba una expresión de VB. En el cuadro de texto escriba LabEnvironmentUri. El editor mostrará todos los usos existentes de los parámetros y puede seleccionar el valor de esa lista en lugar de escribirlo.

Iniciar el entorno

Puede agregar una actividad para iniciar el entorno a la plantilla predeterminada de laboratorio arrastrando la actividad StartLabEnvironment del Cuadro de herramientas a la plantilla de flujo de trabajo e inicializando las variables de la actividad.

Para iniciar el entorno

  1. En el cuadro de herramientas, elija la actividad StartLabEnvironment. Arrástrelo al editor del flujo de trabajo y colóquelo antes de la actividad La aplicación se implementó correctamente pero después de la actividad de StopLabEnvironment.

  2. Haga clic con el botón secundario en la actividad y, a continuación, haga clic en Propiedades. La ventana Propiedades muestra los argumentos de entrada y salida de esta actividad. Observe que el flujo de trabajo ya tiene una variable denominada LabEnvironmentUri que hace referencia al identificador URI del entorno.

    Elija la pestaña Variables. La lista de variables se muestra.

    En la fila de LabEnvironmentUri y en la columna Predeterminada, haga doble clic en Escriba una expresión de VB. En el cuadro de texto escriba LabEnvironmentUri. El editor mostrará todos los usos existentes de los parámetros y puede seleccionar el valor de esa lista en lugar de escribirlo.

Espere a que las máquinas virtuales se reinicien antes de continuar con el resto del flujo de trabajo.

Puede agregar un tiempo de espera para que se inicien las máquinas virtuales arrastrando la actividad Delay del Cuadro de herramientas a la plantilla de flujo de trabajo e inicializando las variables de la actividad. Esta actividad se encuentra en la pestaña Primitivas del Cuadro de herramientas.

Para esperar a que las máquinas virtuales se inicien

  1. En el cuadro de herramientas, elija la pestaña Primitivas.

  2. Haga clic en la actividad Delay. Arrástrela al editor del flujo de trabajo y colóquela antes de la actividad La aplicación se implementó correctamente pero después de la actividad de StartLabEnvironment.

  3. Haga clic con el botón secundario en la actividad y, a continuación, haga clic en Propiedades. La ventana Propiedades muestra los argumentos de entrada y salida de esta actividad. Observe que el flujo de trabajo ya tiene una variable denominada Duración, que hace referencia al tiempo de espera.

  4. En la ventana Propiedades, elija Duración y, a continuación, elija los puntos suspensivos (...).

  5. En el Editor de expresiones, escriba el tiempo de espera (por ejemplo, 10 minutos) en formato TimeSpan.FromMinutes(10).

Después de haber modificado esta plantilla, protéjala en el sistema de control de código fuente y úsela para crear una nueva definición de compilación e implementar aplicaciones que requieren el reinicio después de la instalación.

Personalización para leer los archivos de control de código fuente

Si crea actividades personalizadas y después las usa en la plantilla de flujo de trabajo, asegúrese de que el agente de compilación, que se comunica mediante la cuenta de servicio de laboratorio, tenga acceso a estas actividades. Dado que estas actividades tienen que protegidas en el sistema de control de código fuente como ensamblados personalizados, debe asegurarse de que la cuenta de servicio Lab tiene permiso para leer la ruta de acceso en la que se protegen los ensamblados personalizados. Para obtener más información sobre la cuenta de servicio de laboratorio, vea Cómo: Configurar la cuenta de servicio del laboratorio. Puede conceder permisos a la cuenta de serviciode laboratorio vusando el comando tf permissions. Por ejemplo, para conceder permisos de lectura a la cuenta de servicio de laboratorio miDominio\cuentaLaboratorio en la ruta de acceso $/MiProyecto/EnsambladosPersonalizados, debe ejecutar un comando similar 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

Personalización para tener acceso a una ubicación de destino de compilación mediante la cuenta del agente de compilación

El agente de compilación que ejecuta el flujo de trabajo de laboratorio obtiene acceso a la ubicación de destino de compilación mediante la cuenta de servicio de laboratorio. Si desea que el agente de compilación use la cuenta del agente de compilación, puede personalizar la plantilla predeterminada de laboratorio. En la plantilla, busque la actividad RunDeploymentScript que ejecuta los scripts de implementación. Esta actividad expone la propiedad SharedLocationForNetUse, que define la ubicación que debe realizarse utilizando la cuenta de servicio Lab. <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />Para tener acceso a la ubicación de destino bajo la cuenta del agente de compilación en lugar de la cuenta de servicio Lab, elimine la propiedad de plantilla o establezca el valor de esta propiedad en null ({x: Null}) como se muestra en este ejemplo: mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />

Personalización para tener acceso a otras ubicaciones mediante la cuenta de servicio Lab

Si la ejecución del agente de compilación bajo la cuenta de servicio Lab necesita leer ubicaciones que no son las de compilación, puede cambiar el valor de la propiedad SharedLocationForNetUse del valor predeterminado [BuildLocation] por la ubicación deseada. Por ejemplo, para ejecutar el agente de compilación con la cuenta de servicio de laboratorio y tener acceso al directorio \\contoso\scripts, debe tener: <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />

Vea también

Actividades del flujo de trabajo de Lab Management
Usar un entorno de laboratorio para el ciclo de vida de la aplicación
Definir el proceso de compilación
Crear o modificar una definición de compilación
Introducción a Windows Workflow Foundation (WF) en .NET 4