Compartir a través de


Cómo: Implementar archivos para pruebas

Antes de ejecutar una prueba, la prueba y la aplicación tienen que ser copiarán en una ubicación donde se pueden ejecutar, así como otros ensamblados que hacen referencia.Una prueba normalmente también requiere archivos adicionales como datos de prueba, archivos de configuración, una base de datos, y ensamblados explícitamente cargados.Para hacer esos archivos adicionales disponibles para las pruebas, debe especificar que deben implementar.

¿Dónde hace la ejecución de pruebas?

Visual Studio 2012 puede ejecutar pruebas en varios lugares:

  • En la carpeta de salida de la compilación, normalmente <your project>\bin\Debug.

  • En una carpeta de implementación local de las pruebas en el mismo equipo que la compilación.

  • En un equipo remoto. La implementación remota se usa para probar enrutado o aplicaciones Web, y las aplicaciones que deben ejecutarse en una plataforma concreta.Para la implementación remota debe configurar controlador y agentes de prueba, y se ejecuta normalmente las pruebas en entorno de laboratorio.Para obtener más información acerca de la implementación remota, vea Cómo: Ejecutar una prueba mediante controladores y agentes de pruebas.

¿Cómo implemento archivos de pruebas para una prueba local?

Ésta es la mejor manera:

  1. Copie los archivos en el directorio de destino de compilación como parte del proceso de compilación.

    • Si son específicos de un proyecto de prueba, inclúyalos como archivos de contenido en el proyecto de prueba de Visual Studio.Selecciónelos en el explorador de soluciones y establezca la propiedad de copiar el resultado en Copiar si es posterior.

    • Si no, defina una tarea de la POST- generación de copiar archivos en el directorio de salida de compilación.Por ejemplo:

      xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
      

      Abra las propiedades del proyecto de prueba.En un proyecto de C#, abra la página Eventos de compilación.En un proyecto de Visual Basic, abra la página Compilar y elija Eventos de compilación.Agregue el comando copiar al campo Evento posterior a la compilación.

  2. Utilice DeploymentItemAttribute en métodos de prueba o clases de prueba para especificar los archivos y carpetas que se deben copiar en el directorio de salida de compilación en el directorio de implementación.

    [TestClass]
    class TestClass1
    {
      [TestMethod]
      [DeploymentItem("source", "targetFolder")]
      public void Test1()
      {
        string testData = System.IO.File.ReadAllText(@"targetFolder\source");
        ...
    } }
    
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("source", "targetFolder")> _
        Sub TestMethod1()
            Dim testData As String = _
                System.IO.File.ReadAllText(@"targetFolder\source")
        ...
        End Sub
    End Class
    
    • origen es un archivo o directorio a copiar.La ruta de acceso puede ser absoluta, o relativa al directorio de resultados de la compilación.

    • targetFolder es opcional.Es el directorio en el que el contenido del archivo de código fuente o el directorio se copiarán.La ruta de acceso puede ser absoluta, o relativa al directorio de implementación.El valor predeterminado es “. ”, el directorio de implementación.

      [!NOTA]

      targetFolder siempre es un directorio, nunca una ruta de acceso.No puede cambiar el nombre del archivo mediante DeploymentItem.

    Puede utilizar el atributo tantas veces como desee, y puede aplicarse a los métodos de prueba o clases de prueba.

    Cuando selecciona un conjunto de pruebas para ejecutarse, todos los elementos especificados en los atributos DeploymentItem se copian antes de la ejecución de pruebas se inicie.

  3. Considere ejecutar las pruebas unitarias directamente en el directorio de salida de compilación, de modo que las ejecuciones de pruebas más rápidamente.Esto es especialmente útil en el servidor de compilación después de proteger las pruebas.

    Para ello, agregue un archivo de .runsettings a la solución, incluya <DeploymentEnabled>False</DeploymentEnabled>, y seleccione el archivo en prueba, menú configuración de pruebas.El mismo efecto aparece en cualquier ejecución de pruebas en la que DeploymentItemAttribute no se utilice en absoluto.

    Sin embargo, no puede evitar usar una carpeta de implementación si utiliza un archivo de .testsettings, necesario para el web y las pruebas de carga, incluidas las pruebas de la interfaz de usuario, y cualquier prueba que implemente una aplicación a equipos remotos.

¿Cuándo se debe utilizar un archivo de .testsettings?

No necesita un archivo de .testsettings para las pruebas unitarias nivel.Si no requiere un archivo de .testsettings, no utilice uno.Haga pruebas unitarias ejecutarse más lentamente, y es incompatible con marcos de pruebas de otro fabricante.Considere las otras maneras de implementación en su lugar.

Se requiere un archivo de .testsettings si cualquiera de estas instrucciones son verdaderas:

Si utiliza un archivo de .testsettings, copiará los ensamblados de aplicación y de pruebas siempre una carpeta de implementación.

Puede especificar los archivos de datos y los directorios en la página Implementación de editor de .testsettings.Se copiarán en la carpeta de implementación antes de cada ejecución de pruebas.Las rutas de acceso de elemento especificadas en esta página siempre están en relación con el directorio de la solución, y se implementan siempre en la carpeta de implementación junto a los ensamblados de aplicación y de prueba.

Si desea utilizar las rutas de acceso absolutas o para especificar un directorio diferente de destino, abrir el archivo de .testsettings con el Editor XML, e insertar un fragmento parecido a:

<Deployment>
  <DeploymentItem filename="C:\MyTestData\TestData.mdb"
        outputDirectory="D:\TestDB\" />
</Deployment>

outputDirectory puede ser absoluto o relativo al directorio de implementación.

¿Cuándo se utiliza una carpeta independiente de implementación?

Si ejecuta pruebas mediante Visual Studio, la carpeta de implementación se crea bajo TestResults en la carpeta de la solución.

Se utiliza una carpeta independiente de la implementación si es un de los prueba métodos o las clases de una ejecución de pruebas tienen el atributo DeploymentItem, o si utiliza un archivo de .testsettings.

Si se utiliza una carpeta de implementación, los archivos y carpetas se copian en la carpeta de implementación antes de ejecutar las pruebas:

  • Archivo de ensamblado de prueba.

  • Todos los ensamblados dependientes

  • Archivos y directorios que se ha especificado explícitamente, mediante DeploymentItemAttribute o en un archivo de .testsettings

Carpetas de implementación para una ejecución de prueba local

Carpeta de implementación local de pruebas

¿Cuándo se implementan los archivos y en qué secuencia?

En una ejecución de pruebas, todos los archivos que se van a implementar se copian antes de que las pruebas se inicie.Una ejecución de pruebas es un lote de pruebas iniciadas por un comando único o un evento programado.Esto significa que si especifica un archivo de datos que se implementará para un método de prueba determinado, también estará disponible para cada otra prueba que se realice en el mismo ejecución.

Los siguientes elementos se copian, en el orden mostrado.Los elementos que se copien posteriormente sobrescribirán los que se copiaron anteriormente, si tienen el mismo nombre.

  1. Elementos especificados mediante DeploymentItemAttribute

  2. Dependencias.Por ejemplo, archivos de configuración de aplicación y ensamblados dependientes.

  3. Elementos especificados en un archivo de .testsettings, si usa uno.

  4. Binarios instrumentados.Por ejemplo, los ensamblados que se han instrumentado para habilitar la cobertura de código o IntelliTrace.

    Si utiliza la instrumentación en contexto, los binarios en primer lugar se instrumentan y después se copian en el directorio de implementación; en caso contrario, primero se copian y después se instrumentan.La instrumentación en contexto es la configuración predeterminada para las pruebas que se ejecutan localmente.

  5. El archivo o archivos que comprenden la prueba.Incluyen los ensamblados de prueba, para las pruebas unitarias; archivos de texto o .mht, para las pruebas manuales; u otros tipos de archivos para otros tipos de pruebas, como las pruebas genéricas.

¿Cuál está en el directorio TestResults?

  • Carpeta de ejecución de prueba.TestResults contiene una carpeta para cada ejecución de pruebas que ha iniciado.El nombre incluye el tiempo creado.

    Si especifica los scripts de configuración y de limpieza en un archivo de .testsettings, la carpeta de la ejecución de pruebas contiene estos.

  • Out.Cada carpeta de la ejecución de prueba contiene una carpeta denominada Out.La carpeta Out es la carpeta de implementación real, a la que se copian los ensamblados y otros archivos de implementación a la ejecución de pruebas se inicia.

  • En.Los resultados de la cobertura de código y otros ciertos resultados se almacenan en la carpeta en.

Vea también

Referencia

DeploymentItemAttribute

Conceptos

Instrumentar y volver a firmar ensamblados

Otros recursos

Especificar la configuración para las pruebas de Visual Studio