Compartir a través de


Crear scripts de implementación para flujos de trabajo de compilación-implementación-prueba

 

Publicada: julio de 2016

Para implementar la aplicación con un flujo de trabajo de compilación-implementación-prueba, debe crear scripts de implementación y agregarlos a la compilación. Los scripts de implementación son archivos BAT o CMD que copian la compilación en las máquinas del entorno de laboratorio. Si la compilación incluye un paquete de instalación, puede usar los scripts de implementación para ejecutarlo. Al crear el flujo de trabajo de compilación-implementación-prueba, se agregan a él los comandos que ejecutan los scripts de implementación. Cuando se ejecuta el flujo de trabajo, el controlador de compilación ejecuta esos comandos en el directorio de trabajo de las máquinas especificadas del entorno de laboratorio.

Consulte Crear un flujo de trabajo de compilación-implementación-prueba para un entorno SCVMM o Crear un flujo de trabajo de compilación-implementación-prueba para un entorno estándar. En estas secciones se explica cómo crear y usar los scripts de implementación con el flujo de trabajo de compilación-implementación-prueba:

  • Preparar los archivos de compilación para la implementación

  • Escribir los scripts de implementación

  • Compilar los scripts de implementación

  • Configurar los directorios de trabajo

  • Agregar los scripts de implementación al flujo de trabajo

Para más ejemplos, vea el tema sobre automatización de las pruebas del sistema

Requisitos

  • Visual Studio Enterprise, Visual Studio Test Professional

Preparar los archivos de compilación para la implementación

La manera que elija de instalar la aplicación determinará las tareas principales que los scripts de implementación deberán llevar a cabo. Instalar la aplicación puede implicar copiar únicamente un archivo EXE en una máquina cliente o podría exigir la ejecución de un paquete de implementación que instale los archivos en varias máquinas. En la tabla siguiente se describen estas tareas para cada tipo de implementación.

Importante

Si la aplicación presenta requisitos previos de software y este último y los scripts de implementación no lo instalan ni configuran antes de implementar la aplicación, debe instalarlo manualmente al preparar las máquinas del entorno de laboratorio.Si se usa un entorno de SCVMM que implementa instantáneas del entorno, debe asegurarse de que estas tengan instalado el software incluido en los requisitos previos.

Tipo de instalación

Descripción

Paquete de implementación de servicio Web

System_CAPS_warningAdvertencia

Si implementa una aplicación que usa IIS, el servicio Web Deployment Agent debe estar configurado en el servidor IIS del entorno de laboratorio antes de implementar la aplicación.

Los scripts de implementación deben copiar los archivos de compilación y el paquete de implementación en las máquinas de destino del entorno de laboratorio y, a continuación, ejecutar el paquete de implementación. Para ello, quizá tenga que pasar como parámetros al script de implementación un nombre de dominio, un nombre de cuenta de servicio y un nombre de servidor TFS. Este tipo de instalación suele requerir que se instale y configure manualmente el software que es requisito previo, como un servidor web o un servidor de bases de datos, antes de implementar la aplicación. La configuración del software que es requisito previo podría exigir la realización de determinadas tareas que habiliten la implementación de aplicaciones en la máquina de destino. Por ejemplo, si la aplicación usa IIS, el servicio Web Deployment Agent debe estar configurado en el servidor IIS del entorno de laboratorio antes de implementar la aplicación.

Archivos de compilación sin paquete de instalación

Los scripts de implementación deben copiar los archivos de compilación y de la aplicación en las máquinas de destino del entorno de laboratorio.

Paquete de instalación

System_CAPS_warningAdvertencia

Si implementa un paquete de instalación con su flujo de trabajo de compilación-implementación-prueba, los scripts de implementación deben controlar todos los datos proporcionados por el usuario que se generen al ejecutar el paquete de instalación; de lo contrario, se producirán errores al implementar la aplicación.

Los scripts de implementación deben copiar el paquete de instalación en las máquinas de destino del entorno de laboratorio y, a continuación, ejecutar el paquete de instalación. Cuando los scripts de implementación ejecutan el paquete de instalación, es preciso que la instalación sea silenciosa. Los datos proporcionados por el usuario que la instalación solicite deberán controlarse mediante los scripts de implementación. Esto incluye las credenciales. Si los scripts de implementación no controlan todos los datos proporcionados por el usuario al ejecutar el paquete de instalación, se producirán errores al implementar la aplicación. Si no está implementando una aplicación web y se requiere un paquete de instalación para la implementación, se recomienda que este sea de InstallShield. Para obtener información sobre InstallShield, vea Implementación de Windows Installer.

Escribir los scripts de implementación

Estas son las tareas más comunes realizadas por los scripts de implementación:

  • Obtener la ruta de acceso de compilación del controlador de compilación. Puede enviarla al script de implementación como argumento de comando.

  • Especificar la ruta de acceso de implementación.

  • Crear el directorio de implementación. También puede hacerlo manualmente, en lugar de en el script de implementación. Si usa la instantánea del entorno previo a la implementación con el flujo de trabajo, solo deberá crear el directorio en las máquinas virtuales de la instantánea.

  • Copiar el paquete de implementación de la ruta de acceso de compilación en la de implementación.

  • Ejecutar el paquete de implementación en el directorio de implementación.

Los comandos siguientes muestran algunas tareas comunes realizadas por los scripts de implementación.

REM set build path
set buildlocation=%1

REM set deployment path
set targetdir="C:\deploy"

REM create deployment directory
if not exist %targetdir% (cmd /c mkdir %targetdir%)

REM copy build to the deployment directory
xcopy /c /y /e %buildlocation%\*.* %targetdir%

REM if you are using a deployment package you can run it here, after you copy it to your deployment directory

Compilar los scripts de implementación

Después de crear los scripts de implementación, debe protegerlos en el control de versiones y, a continuación, configurarlos para que se copien en la salida de la compilación. Para compilar los scripts de implementación, primero debe asegurarse de que se almacenan en su proyecto de Visual Studio y no solo en la solución. Para ello, en Visual Studio seleccione el script de implementación en Explorador de soluciones y, a continuación, en Propiedades, cambie Copiar en el directorio de salida a Copiar siempre.

Configurar los directorios de trabajo

Puede especificar un directorio de trabajo para cada conjunto de comandos que agregue al flujo de trabajo de compilación-implementación-prueba. Cuando se especifica un directorio de trabajo, el controlador de compilación ejecuta los comandos especificados en el directorio de trabajo de cada máquina que se asigna a ese rol. Si no se especifica un directorio de trabajo al agregar comandos al flujo de trabajo de compilación-implementación-prueba, el controlador de compilación ejecutará los comandos en el directorio de trabajo predeterminado, C:\Windows\System32.

Importante

No cree directorios de trabajo mediante comandos que se agregan al flujo de trabajo de compilación-implementación-prueba pues, en ese caso, los directorios no se habrán creado antes de que los scripts de implementación intenten copiar archivos en ellos.

Si especifica un directorio de trabajo, debe asegurarse de que se cree antes de que los scripts de implementación copien archivos en él. No cree directorios de trabajo mediante los comandos que se usan para agregar scripts de implementación al flujo de trabajo de compilación-implementación-prueba. Si lo hace, los directorios no se habrán creado antes de que los scripts de implementación intenten copiar archivos en ellos. Para asegurarse de que un directorio de trabajo se cree antes de que los scripts de implementación copien archivos en él, debe crearlo manualmente en las máquinas de destino del entorno de laboratorio o bien, si se crea mediante los scripts de implementación, estos deben crearlo antes de que ningún comando copie archivos en él.

Agregar los scripts de implementación al flujo de trabajo

Agregue los comandos del shell de Windows al flujo de trabajo de compilación-implementación-prueba para implementar la aplicación en el entorno de laboratorio. Si usa scripts de implementación, los comandos deben copiarlos del controlador de compilación al directorio de trabajo de las máquinas de destino y, a continuación, ejecutarlos. Sin embargo, para las instalaciones de aplicaciones simples que solo requieren copiar algunos archivos en el directorio de trabajo, puede usar comandos de shell en el flujo de trabajo sin especificar scripts de implementación externos.

Si desea agregar un comando que se ejecute desde una ventana del sistema de Windows, como mkdir, o mediante la ejecución de un archivo por lotes, debe comenzar el comando con cmd /c. Por ejemplo, el comando cmd /c $(BuildLocation)\copyexe $(BuildLocation), donde copyexe es un archivo por lotes copyexe.bat, copia un ejecutable en un directorio local de una máquina virtual.

Variables integradas: cuando se agregan estos comandos al flujo de trabajo de compilación-implementación-prueba, puede usar variables integradas para identificar determinadas rutas de acceso y máquinas. También puede pasar estas variables a los scripts de implementación.

  • $(BuildLocation)
    La ruta de acceso completa donde se encuentran los archivos de compilación o la ubicación de destino de la compilación, si esta se ha configurado en el flujo de trabajo de compilación-implementación-prueba. Use esta variable para obtener acceso a los archivos de compilación.

  • $(NombreDeEquipoInterno_<Nombre de máquina virtual>)
    El nombre del equipo para una máquina virtual en un entorno de SCVMM. Use esta variable para obtener acceso a un host de máquina virtual si no conoce el nombre del host. Si tiene un script de implementación para configurar un servidor web que necesita el nombre de equipo, puede pasarlo como argumento al script. Por ejemplo, si el nombre de la máquina virtual del servidor web fuese VM1 y el nombre del equipo fuese MyWebServer, escribiría $(InternalComputerName_VM1) como argumento para el script y este pasaría el valor MyWebServer al script.

  • $(NombreDeEquipo_<Nombre de máquina virtual>)

    Nota

    Aislamiento de red en entornos de SCVMM: si usa el aislamiento de red para el entorno de SCVMM, el valor de $(InternalComputerName_<VM Name>) es el mismo para una instancia de una máquina virtual en cada copia del entorno, pero el valor de $(ComputerName_<VM Name>) es diferente.

    Nombre de dominio completo de la máquina virtual. Use esta variable para obtener acceso a un equipo desde fuera de un entorno de SCVMM. Puede ser conveniente pasar esta variable como argumento para configurar un servidor web. Por ejemplo, si el nombre de la máquina virtual del servidor web fuera VM1, puede obtener acceso al nombre de dominio completo de la máquina virtual pasando el argumento $(ComputerName_VM1) al script de implementación.

Vea también

Flujos de trabajo automatizados de compilación-implementación-prueba
Automatización de las pruebas del sistema