Compartilhar via


Classe DeploymentItemAttribute

Usado para especificar os itens de implantação, como, por exemplo, arquivos ou pastas para implantação de por teste. Esta classe não pode ser herdada.

Hierarquia de herança

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

Namespace:  Microsoft.VisualStudio.TestTools.UnitTesting
Assembly:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (em Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Sintaxe

'Declaração
<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

O tipo DeploymentItemAttribute expõe os membros a seguir.

Construtores

  Nome Descrição
Método público DeploymentItemAttribute(String) Inicializa uma nova instância da classe DeploymentItemAttribute.Um objeto que é criado com este construtor será inicializado com um caminho para um item de implantação ou diretório.
Método público DeploymentItemAttribute(String, String) Inicializa uma nova instância da classe DeploymentItemAttribute.Um objeto que é criado com este construtor será inicializado com um caminho para um item de implantação e o diretório de saída.

Início

Propriedades

  Nome Descrição
Propriedade pública OutputDirectory Obtém um valor que representa o caminho para o diretório de saída.
Propriedade pública Path Obtém um valor que representa o caminho para o item de implantação.
Propriedade pública TypeId Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute.)

Início

Métodos

  Nome Descrição
Método público Equals Infraestrutura. Returns a value that indicates whether this instance is equal to a specified object. (Herdado de Attribute.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado pela coleta de lixo. (Herdado de Object.)
Método público GetHashCode Retorna o código hash para essa instância. (Herdado de Attribute.)
Método público GetType Obtém o Type da instância atual. (Herdado de Object.)
Método público IsDefaultAttribute Quando substituído em uma classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute.)
Método público Match Quando substituído em uma classe derivada, retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método protegido MemberwiseClone Cria uma cópia superficial do atual Object. (Herdado de Object.)
Método público ToString Retorna um string que representa o objeto atual. (Herdado de Object.)

Início

Implementações explícitas da interface

  Nome Descrição
Implementação explícita da interfaceMétodo particular _Attribute.GetIDsOfNames Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfo Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfoCount Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.Invoke Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute.)

Início

Comentários

Dependendo das suas configurações de teste, Microsoft Visual Studio 2010 executa testes tanto na pasta em que você os ter criado ou em separado "implantação" pasta. Para obter mais informações sobre configurações de teste, consulte Criar um teste automatizado de configurações para executar testes a partir de Visual Studio.

Esta seção discute o caso em que Microsoft Visual Studio 2010 executa testes em uma pasta diferente da pasta que contém os assemblies construído.

Quando um teste é executado em dessa maneira, o teste e assemblies de código under teste-, e os itens de implantação são colocados em uma pasta de implantação de teste exclusivos para essa execução de teste. Este atributo identifica arquivos e diretórios que contêm arquivos que são usados pelo teste implantado para executar. Faz uma cópia de itens de implantação e as coloca no diretório de implantação de teste com base no mecanismo de teste do OutputDirectory especificado ou o diretório padrão.

Esse atributo pode ser especificado em um método de teste ou em uma classe de teste. No entanto, esse atributo não é herdado pelas classes derivadas.

Pode haver várias instâncias desse atributo para especificar mais de um item. O caminho do item pode ser absoluto ou relativo. Caminhos relativos são relativos ao caminho do projeto.

Os exemplos a seguir demonstram o uso de diferente da DeploymentItemAttribute:

  • [DeploymentItem("file1.xml")]Implanta um item chamado file1.xml que localizado no caminho do projeto. O arquivo é implantado no diretório raiz de implantação.

  • [DeploymentItem("file2.xml", "DataFiles")]Implanta um item chamado file2.xml que localizado no caminho do projeto. O arquivo é implantado no subdiretório de arquivos de dados do diretório raiz de implantação.

  • [DeploymentItem("C:\\MyDataFiles\\")]Implanta todos os itens e pastas encontradas dentro do diretório MyDataFiles. Isso não criará o diretório MyDataFiles sob o diretório de implantação. Todos os arquivos e pastas dentro de MyDataFiles serão implantadas no diretório raiz de implantação. Para copiar toda a estrutura do diretório MyDataFiles, você deve especificar o MyDataFiles como o diretório de saída.

  • [DeploymentItem("%myDir%\myFile.txt")]Se esse arquivo existe no diretório para o qual resolve de % % myDir, implanta o myfile. txt do arquivo.

Para obter mais informações sobre como usar os atributos, consulte Estendendo metadados usando atributos.

Exemplos

A classe a seguir cria um arquivo que será usado pelo método de teste.

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

A classe de teste a seguir contém um método de teste será instanciar a classe de carro que irá criar um arquivo chamado "testFile1.txt". Este arquivo será implantado conforme identificado na DeploymentItemAttribute. Em seguida, o método de teste testará se o arquivo existir no mesmo diretório do assembly de teste.

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

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.TestTools.UnitTesting