Share via


Cómo: Ejecutar pruebas unitarias de SQL Server desde Team Foundation Build

 

Puede usar Team Foundation Build para ejecutar las pruebas unitarias de SQL Server como parte de una prueba de comprobación de la compilación (BVT).Puede configurar las pruebas unitarias para implementar la base de datos, generar datos de prueba y ejecutar las pruebas seleccionadas.Si no está familiarizado con Team Foundation Build, debe revisar la siguiente información antes de seguir los procedimientos de este tema:

Para usar estos procedimientos, primero debe configurar el entorno de trabajo realizando las siguientes tareas:

  • Instalar Team Foundation Build y el control de versiones de Team Foundation.Probablemente tenga que instalar Team Foundation Build y el control de versiones de Team Foundation en distintos equipos.

  • Instalar MicrosoftSQL Server Data Tools Build Utilities en el mismo equipo que Team Foundation Build.Para instalar SQL Server Data Tools Build Utilities, realice primero un punto de instalación administrativa.Para obtener más información acerca de un punto de instalación administrativa, vea Instalar SQL Server Data Tools.Después, instale SSDTBuildUtilties.msi en el servidor de compilación desde la ubicación (/location) empleada para el punto de instalación administrativa.

  • Conéctese a una instancia de Visual Studio Team Foundation Server.

Después de configurar el entorno de trabajo, debe seguir estos pasos:

  1. Cree un proyecto de base de datos.

  2. Importe o cree el esquema y los objetos del proyecto de base de datos.

  3. Configure las propiedades del proyecto de base de datos para la compilación y la implementación.

  4. Cree una o varias pruebas unitarias.

  5. Agregue la solución que contiene el proyecto de base de datos y el proyecto de prueba unitaria al control de versiones y proteja todos los archivos.

Los procedimientos de este tema explican cómo crear una definición de compilación para ejecutar las pruebas unitarias como parte de una ejecución de pruebas automatizada:

  1. Configurar los valores de prueba para ejecutar las pruebas unitarias de base de datos en un agente de compilación x64

  2. Asignar pruebas a una categoría de prueba (opcional)

  3. Modificar el proyecto de prueba

  4. Proteger la solución

  5. Crear una definición de compilación

  6. Ejecutar la nueva definición de compilación

Ejecución de pruebas unitarias de SQL Server en un equipo de compilación

Cuando ejecute pruebas unitarias en un equipo de compilación, puede que las pruebas unitarias no encuentren los archivos de proyecto de base de datos (.sqlproj).Este problema aparece porque el archivo app.config hace referencias a esos archivos mediante rutas de acceso relativas.Además, las pruebas unitarias podrían producir un error si no pueden encontrar la instancia de SQL Server que desea usar para ejecutar las pruebas unitarias.Este problema puede aparecer si las cadenas de conexión almacenadas en el archivo app.config no son válidas en el equipo de compilación.

Para resolver estos problemas, debe especificar una sección de invalidación en el archivo app.config que reemplace app.config por un archivo de configuración que sea específico del entorno de Team Foundation Build.Para obtener más información, vea Modificar el proyecto de prueba, más adelante en este tema.

Configurar las pruebas para ejecutar pruebas unitarias de SQL Server en un agente de compilación x64

Para poder ejecutar las pruebas unitarias en un agente de compilación x64, debe configurar las pruebas para cambiar la plataforma de proceso host.

Para especificar la plataforma de proceso de host

  1. Abra la solución que contiene el proyecto de prueba cuyos valores desea configurar.

  2. En el Explorador de soluciones, en la carpeta Elementos de la solución, haga doble clic en el archivo Local.testsettings.

    Se muestra el cuadro de diálogo Configuración de pruebas.

  3. En la lista, haga clic en Hosts.

  4. En el panel de detalles, en Plataforma de proceso de host, haga clic en MSIL para configurar las pruebas que se van a ejecutar en un agente de compilación x64.

  5. Haga clic en Aplicar.

Asignar pruebas a una categoría de prueba (opcional)

Normalmente, cuando se crea una definición de compilación para ejecutar pruebas unitarias, se especifica una o varias categorías de prueba.Todas las pruebas de las categorías especificadas se ejecutan cuando se ejecuta la compilación.

Para asignar pruebas a una categoría de prueba

  1. Abra la ventana Vista de pruebas.

  2. Seleccione una prueba.

  3. En el panel Propiedades, haga clic en Categorías de pruebas y, a continuación, haga clic en el botón de puntos suspensivos (...)en la columna del extremo derecho.

  4. En la ventana Categoría de prueba, en el cuadro Agregar nueva categoría, escriba un nombre para la nueva categoría de pruebas.

  5. Haga clic en Agregar y, a continuación, haga clic en Aceptar.

    La nueva categoría de prueba se asignará a la prueba y estará disponible para otras pruebas mediante sus propiedades.

Modificar el proyecto de prueba

De forma predeterminada, Team Foundation Build crea un archivo de configuración a partir del archivo app.config del proyecto cuando compila el proyecto de pruebas unitarias.La ruta de acceso al proyecto de base de datos se almacena como ruta de acceso relativa en el archivo app.config.Las rutas de acceso relativas que funcionan en Visual Studio no funcionarán porque Team Foundation Build coloca los archivos compilados en ubicaciones diferentes con respecto al lugar donde se ejecutan las pruebas unitarias.Además, el archivo app.config contiene las cadenas de conexión que especifican la base de datos que desea probar.También necesita un archivo app.config independiente para Team Foundation Build si las pruebas unitarias deben conectarse a una base de datos diferente de la usada cuando se creó el proyecto de prueba.Al realizar modificaciones en el procedimiento siguiente, puede configurar el proyecto de prueba y el servidor de compilación de modo que Team Foundation Build use una configuración diferente.

System_CAPS_importantImportante

Debe realizar este procedimiento para cada proyecto de prueba (.vbproj o .vsproj).

Para especificar un archivo app.config de Team Foundation Build

  1. En el Explorador de soluciones, haga clic con el botón secundario en el archivo app.config y haga clic en Copiar.

  2. Haga clic con el botón secundario en el proyecto de prueba y haga clic en Pegar.

  3. Haga clic con el botón secundario en el archivo denominado Copia de app.config y haga clic en Cambiar nombre.

  4. Escriba BuildComputer**. sqlunitttest.config** y presione ENTRAR, donde BuildComputer es el nombre del equipo en el que se ejecuta el agente de compilación.

  5. Haga doble clic en BuildComputer.sqlunitttest.config.

    Se abrirá el archivo de configuración en el editor.

  6. Cambie la ruta de acceso relativa al archivo .sqlproj agregando un nivel de carpeta para la carpeta Orígenes y una subcarpeta con el mismo nombre que la solución.Por ejemplo, si el archivo de configuración contiene inicialmente la entrada siguiente:

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

    Actualice el archivo de la forma siguiente:

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

    Cuando haya terminado, su archivo BuildComputer.sqlunitttest.config debe ser similar al siguiente ejemplo para 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>
    

    O bien, si utiliza 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. Actualice el atributo ConnectionString de ExecutionContext y PrivilegedContext para especificar las conexiones a la base de datos de destino en la que desea implementarlo.

  8. En el menú Archivo, haga clic en Guardar todo.

  9. En el Explorador de soluciones, haga doble clic en app.config.

  10. En el editor, para cada nodo <SqlUnitTesting_VSVersion>, agregue AllowConfigurationOverride="true".Por ejemplo:

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

    Al realizar este cambio, permitirá que Team Foundation Build use el archivo de configuración de reemplazo que ha creado.

  11. En el menú Archivo, haga clic en Guardar todo.

    A continuación, debe actualizar Local.testsettings para incluir el archivo de configuración personalizado.

Para personalizar Local.testsettings con el fin de implementar el archivo de configuración personalizado

  1. En el Explorador de soluciones, haga doble clic en Local.testsettings.

    Se muestra el cuadro de diálogo Configuración de pruebas.

  2. En la lista de categorías, haga clic en Implementación.

  3. Active la casilla Habilitar implementación.

  4. Haga clic en Agregar archivo.

  5. En el cuadro de diálogo Agregar archivos de implementación, especifique el archivo BuildComputer.sqlunitttest.config que ha creado.

  6. Haga clic en Aplicar.

  7. Haga clic en Cerrar.

  8. En el menú Archivo, haga clic en Guardar todo.

    A continuación, puede proteger la solución en el control de versiones.

Proteger la solución

En este procedimiento, va a proteger todos los archivos de la solución.Estos archivos incluyen el archivo de metadatos de prueba de la solución, que contiene las asociaciones y pruebas de la categoría de prueba.Cada vez que agregue, elimine, reorganice o cambie el contenido de las pruebas, el archivo de metadatos de prueba se actualizará automáticamente para reflejar estos cambios.

Nota

En este procedimiento se describen los pasos que debe seguir si usa el control de versiones de Team Foundation.Si usa otro software de control de versiones, debe seguir los pasos que sean adecuados para el software.

Para proteger la solución

  1. Conéctese a un equipo que ejecute Team Foundation Server.

    Para obtener más información, vea Usar el Explorador de control de código fuente.

  2. Si la solución no está ya en control de código fuente, agréguela.

    Para obtener más información, vea Agregar un proyecto o una solución al control de versiones.

  3. Haga clic en Ver y, a continuación, haga clic en Protecciones pendientes.

  4. Proteja todos los archivos de la solución.

    Para obtener más información, vea Proteger cambios Pendientes.

    Nota

    Puede tener un proceso específico del equipo que controle cómo se crean y se administran las pruebas automatizadas.Por ejemplo, el proceso puede requerir que compruebe localmente la compilación antes de proteger el código, así como las pruebas que se ejecutarán en él.

    En el Explorador de soluciones aparecerá un icono de candado junto a cada archivo para indicar que está protegido.Para obtener más información, consulte Ver archivo de control de versiones y propiedades de la carpeta.

    Las pruebas están disponibles en Team Foundation Build.A continuación puede crear una definición de compilación que contenga las pruebas que desee ejecutar.

Crear una definición de compilación

Para crear una definición de compilación

  1. En Team Explorer, haga clic en el proyecto del equipo, haga clic con el botón secundario en el nodo Compilaciones y, a continuación, haga clic en Nueva definición de compilación.

    Aparecerá la ventana Nueva definición de compilación.

  2. En Nombre de definición de compilación, escriba el nombre que desea usar para la definición de compilación.

  3. En la barra de navegación, haga clic en Valores predeterminados de compilación.

  4. En Copiar la salida de la compilación en la siguiente carpeta de entrega (ruta UNC, como \\servidor\recurso compartido):, especifique una carpeta que contenga la salida de la compilación.

    Puede especificar una carpeta compartida en el equipo local o en cualquier ubicación de red en los que el proceso de compilación tenga permisos.

  5. En la barra de navegación, haga clic en Proceso.

  6. En el grupo Requerido, en Elementos para compilar, haga clic en elbotón Examinar (...).

  7. En el cuadro de diálogo Editor de lista de proyectos de compilación, haga clic en Agregar.

  8. Especifique el archivo de solución (.sln) que ha agregado al control de versiones anteriormente en este tutorial y haga clic en Aceptar.

    La solución aparece en la lista Archivos de la solución o del proyecto que se van a compilar.

  9. Haga clic en Aceptar.

  10. En el grupo Básico, en Pruebas automatizadas, especifique las pruebas que desea ejecutar.De forma predeterminada, se ejecutarán las pruebas que se encuentran en los archivos denominados *test*.dll de la solución.

  11. En el menú Archivo, haga clic en Guardar NombreDeProyecto.

    Ha creado una definición de compilación.A continuación, modifique el proyecto de prueba.

Ejecutar la nueva definición de compilación

Para ejecutar el nuevo tipo de compilación

  1. En Team Explorer, expanda el nodo de proyecto de equipo, expanda el nodo Compilaciones, haga clic con el botón secundario en la definición de compilación que desea ejecutar y, a continuación, haga clic en Poner nueva compilación en cola.

    Se abrirá el cuadro de diálogo Compilación en cola {TeamProjectName} con una lista de todos los tipos de compilación existentes.

  2. Si fuera necesario, en Definición de compilación, haga clic en la nueva definición de compilación.

  3. Confirme que los valores de Definición de compilación, Agente de compilación y los campos de Carpeta de entrega para esta compilación son todos adecuados y haga clic en Cola.

    Aparecerá la pestaña Puesta en cola del Explorador de compilaciones.Para obtener más información, vea Administrar y ver compilaciones completadas (Visual Studio 2010) o Administrar compilaciones en el Explorador de compilaciones (Visual Studio 2012).

Vea también

Ejecutar pruebas unitarias de SQL Server
Crear una definición de compilación básica
Poner en cola una compilación
Supervisar el progreso de una compilación en ejecución