Compartir a través de


DeploymentItemAttribute (Clase)

Se utiliza para especificar elementos de implementación, como archivos o directorios para la implementación de cada prueba. Esta clase no puede heredarse.

Jerarquía de herencia

System.Object
  System.Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItemAttribute

Espacio de nombres:  Microsoft.VisualStudio.TestTools.UnitTesting
Ensamblado:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (en Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Sintaxis

'Declaración
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Method, AllowMultiple := True)> _
Public NotInheritable Class DeploymentItemAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = true)]
public sealed class DeploymentItemAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Method, AllowMultiple = true)]
public ref class DeploymentItemAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = true)>]
type DeploymentItemAttribute =  
    class
        inherit Attribute
    end
public final class DeploymentItemAttribute extends Attribute

El tipo DeploymentItemAttribute expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público DeploymentItemAttribute(String) Inicializa una nueva instancia de la clase DeploymentItemAttribute.Un objeto creado con este constructor se inicializará con una ruta de acceso a un directorio o elemento de implementación.
Método público DeploymentItemAttribute(String, String) Inicializa una nueva instancia de la clase DeploymentItemAttribute.Un objeto creado con este constructor se inicializará con una ruta de acceso a un elemento de implementación y un directorio de resultados.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública OutputDirectory Obtiene un valor que representa la ruta de acceso al directorio de resultados.
Propiedad pública Path Obtiene un valor que representa la ruta de acceso al elemento de implementación.
Propiedad pública TypeId Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).

Arriba

Métodos

  Nombre Descripción
Método público Equals Infraestructura. Devuelve un valor que indica si esta instancia equivale a un objeto especificado. (Se hereda de Attribute).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode Devuelve el código hash de esta instancia. (Se hereda de Attribute).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público IsDefaultAttribute Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método público Match Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Se hereda de Attribute).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Implementaciones explícitas de interfaces

  Nombre Descripción
Implementación explícita de interfacesMétodo privado _Attribute.GetIDsOfNames Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado _Attribute.GetTypeInfo Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado _Attribute.GetTypeInfoCount Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado _Attribute.Invoke Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).

Arriba

Comentarios

Dependiendo de la configuración de ejecución de pruebas, Microsoft Visual Studio 2010 ejecuta las pruebas en la carpeta en la que se han creado o en una carpeta de implementación independiente. Para obtener más información acerca de la configuración de pruebas, vea Crear una configuración de pruebas para ejecutar pruebas automatizadas desde Visual Studio.

Esta sección analiza el caso en el que Microsoft Visual Studio 2010 ejecuta pruebas en una carpeta distinta de la carpeta que contiene los ensamblados compilados.

Cuando se ejecuta una prueba de esta manera, los ensamblados de prueba y de código sometido a prueba, y los elementos de implementación, se colocan en una carpeta de implementación de prueba exclusiva para esa ejecución de prueba. Este atributo identifica los archivos y directorios que contienen archivos que utiliza la prueba implementada para ejecutarse. El motor de pruebas crea una copia de los elementos de implementación y los coloca en el directorio de implementación de la prueba, basándose en el OutputDirectory especificado o el directorio predeterminado.

Este atributo puede especificarse en un método de prueba o en una clase de prueba. Sin embargo, este atributo no lo heredan las clases derivadas.

Puede haber varias instancias de este atributo para especificar más de un elemento. La ruta de acceso al elemento puede ser absoluta o relativa. Las rutas de acceso relativas son relativas a la ruta de acceso del proyecto.

Los ejemplos siguientes muestran los distintos usos de DeploymentItemAttribute.

  • [DeploymentItem("file1.xml")]   Implementa un elemento denominado file1.xml ubicado en la ruta de acceso del proyecto. El archivo se implementa en el directorio raíz de implementación.

  • [DeploymentItem("file2.xml", "DataFiles")]   Implementa un elemento denominado file2.xml ubicado en la ruta de acceso del proyecto. El archivo se implementa en el subdirectorio DataFiles del directorio raíz de implementación.

  • [DeploymentItem("C:\\MyDataFiles\\")]    Implementa todos los elementos y directorios contenidos en el directorio MyDataFiles. Esto no crea el directorio MyDataFiles dentro del directorio de implementación. Todos los archivos y directorios incluidos en MyDataFiles se implementarán en el directorio raíz de implementación. Para copiar la estructura de directorios de MyDataFiles completa, debe especificar MyDataFiles como directorio de resultados.

  • [DeploymentItem("%myDir%\myFile.txt")] Implementa el archivo myFile.txt si ese archivo existe en el directorio en el que se resuelve %myDir%.

Para obtener más información acerca de cómo utilizar los atributos, vea Extender metadatos mediante atributos.

Ejemplos

La clase siguiente crea un archivo que será utilizado por el método de prueba.

using System;
using System.IO;

namespace CarMaker
{
    public class Car
    {
        private static string make = "myMake";
        private static string model = "myModel";

        public static void CarInfo()
        {
            using (StreamWriter sw = new StreamWriter("testFile1.txt"))
            {
                sw.WriteLine(make);
                sw.WriteLine(model);
            }
        }
    }
}
Imports System
Imports System.IO

Namespace CarMaker
    Public Class Car

        Private Shared make As String = "myMake"
        Private Shared model As String = "myModel"

        Public Shared Sub CarInfo()
            Dim sw As New StreamWriter("testFile1.txt")
            Try
                sw.WriteLine(make)
                sw.WriteLine(model)
            Finally
                sw.Close()
            End Try
        End Sub
    End Class
End Namespace

La clase Test siguiente contiene un método de prueba que creará instancias de la clase Car, que creará un archivo denominado "testFile1.txt". Este archivo se implementará como se indica en DeploymentItemAttribute. A continuación, el método de prueba comprobará si el archivo existe en el mismo directorio que el ensamblado de prueba.

using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CarMaker;

namespace DeploymentTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod()]
        [DeploymentItem("testFile1.txt")]
        public void ConstructorTest()
        {
            // Create the file to deploy
            Car.CarInfo();
            string file = "testFile1.txt";
            // Check if the created file exists in the deployment directory
            Assert.IsTrue(File.Exists(file), "deployment failed: " + file +
                " did not get deployed");
        }
    }
}
Imports System
Imports System.IO
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports MyVBProject.CarMaker

Namespace DeploymentTest
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("testFile1.txt")> _
        Sub ConstructorTest()
            Car.CarInfo()
            Dim file As String = "testFile1.txt"
            Assert.IsTrue(IO.File.Exists(file), "deployment failed: " + file + _
                " did not get deployed")
        End Sub
    End Class
End Namespace

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.TestTools.UnitTesting (Espacio de nombres)