Partilhar via


Classe DeploymentItemAttribute

Usado para especificar itens de implantação, sistema autônomo arquivos ou pastas para implantação por teste.Esta classe não pode ser herdada.

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

Sintaxe

<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Method, AllowMultiple := True)> _
Public NotInheritable Class DeploymentItemAttribute _
    Inherits Attribute

Dim instance As DeploymentItemAttribute
[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
public final class DeploymentItemAttribute extends Attribute

Comentários

Dependendo do seu execução de teste configurações, Visual Studio Team System 2008 Test Editionexecuta testes na pasta em que você tenha criado-los ou em uma pasta separada "implantação". Para obter mais informações sobre como fazer o execução de teste configurações, consulte Como: configurar implementação de teste de ms-help://MS.MSDNQTR.v90.en/dv_vsetlt01/html/7bad2edf-6c76-49f4-be4e-4355c9a5597e.htm de.

Esta seção discute o caso no qual Visual Studio Team System 2008 Test Edition  executa testes em uma pasta diferente que não seja a pasta que contém os assemblies construídos.

Quando um teste é executado dessa maneira, o teste e código sob teste assemblies e itens de implantação são colocados em uma pasta de implementação de teste exclusivos para essa execução de teste.Este atributo identifica arquivos e diretórios que contêm arquivos usados pelo teste implantado para executar.O mecanismo de teste faz uma cópia dos itens de implantação e as coloca no diretório de implementação de teste com base na OutputDirectory especificado ou o diretório padrão. See Implantação de Teste Para obter informações adicionais.

Esse atributo pode ser especificado em um método de teste ou em uma classe de teste.No entanto, esse atributo não é herdado por 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 à configuração RelativePathRoot encontrada no arquivo .testrunconfig.

Os exemplos a seguir demonstram o uso diferente do DeploymentItemAttribute:

  • [DeploymentItem("file1.xml")]    Implanta um item chamado file1.xml localizado na RelativeRootPath. O arquivo é implantado para o diretório raiz de implantação.

  • [DeploymentItem("file2.xml", "DataFiles")]    Implanta um item chamado file2.xml localizado na RelativeRootPath. O arquivo é implantado para o 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 diretórios dentro MyDataFiles serão implantados para o diretório raiz de implantação.Para copiar toda a estrutura de diretório MyDataFiles, você deve especificar MyDataFiles sistema autônomo um diretório de saída.

  • [DeploymentItem("%myDir%\myFile.txt")]   Implanta o arquivo myFile.txt se esse arquivo existir no diretório para que % myDir % resolve.

Para obter mais informações sobre como usar 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 que irá criar uma instância da classe do carro que criará um arquivo chamado "testFile1.txt".Esse arquivo será implantado sistema autônomo identificado no 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

Hierarquia de herança

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

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

Membros DeploymentItemAttribute

Namespace Microsoft.VisualStudio.TestTools.UnitTesting

Outros recursos

Como: Configure Test Implantação