Classe DeploymentItemAttribute

Utilizzata per specificare gli elementi di distribuzione, ad esempio file o directory, per la distribuzione per test. La classe non può essere ereditata.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.VisualStudio.TestTools.UnitTesting
Assembly:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (in Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Sintassi

'Dichiarazione
<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

Il tipo DeploymentItemAttribute espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico DeploymentItemAttribute(String) Inizializza una nuova istanza della classe DeploymentItemAttribute.Un oggetto creato con questo costruttore verrà inizializzato con un percorso di un elemento o una directory di distribuzione.
Metodo pubblico DeploymentItemAttribute(String, String) Inizializza una nuova istanza della classe DeploymentItemAttribute.Un oggetto creato con questo costruttore verrà inizializzato con un percorso di un elemento di distribuzione e di una directory di output.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica OutputDirectory Ottiene un valore che rappresenta il percorso della directory di output.
Proprietà pubblica Path Ottiene un valore che rappresenta il percorso dell'elemento di distribuzione.
Proprietà pubblica TypeId Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute)

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Infrastruttura. Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. (Ereditato da Attribute)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetHashCode Restituisce il codice hash per l'istanza. (Ereditato da Attribute)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico IsDefaultAttribute Quando è sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito della classe derivata. (Ereditato da Attribute)
Metodo pubblico Match Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.GetIDsOfNames Esegue il mapping di un set di nomi a un set corrispondente di ID di invio. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.GetTypeInfo Recupera le informazioni sul tipo relative a un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.GetTypeInfoCount Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.Invoke Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute)

In alto

Note

A seconda delle impostazioni test Microsoft Visual Studio 2010 esegue i test sia nella cartella in cui sono stati creati che in una cartella "di distribuzione" distinta. Per ulteriori informazioni sulle impostazioni di test, vedere Creazione di impostazioni di test per l'esecuzione di test automatizzati da Visual Studio.

In questa sezione viene illustrato il caso in cui Microsoft Visual Studio 2010 esegue i test in una cartella diversa da quella che contiene gli assembly compilati.

Quando il test viene eseguito in questo modo, gli assembly di test e di codice sotto test e gli elementi di distribuzione vengono collocati in una cartella di distribuzione di test univoca per tale esecuzione di test. Questo attributo identifica i file e le directory che contengono i file utilizzati per l'esecuzione del test distribuito. Tramite il motore di test viene creata una copia degli elementi di distribuzione, che viene posizionata in una directory di distribuzione di test basata sull'oggetto OutputDirectory specificato o nella directory predefinita.

È possibile specificare questo attributo in un metodo o in una classe di test. Tuttavia, questo attributo non viene ereditato dalle classi derivate.

Possono essere presenti più istanze dell'attributo in modo da specificare più di un elemento. Il percorso dell'elemento può essere relativo o assoluto. I percorsi relativi sono relativi al percorso di progetto.

Negli esempi riportati di seguito viene illustrato l'utilizzo diverso della classe DeploymentItemAttribute:

  • [DeploymentItem("file1.xml")] Distribuisce un elemento denominato file1.xml posizionato nel percorso del progetto. Il file viene distribuito alla directory di distribuzione radice.

  • [DeploymentItem("file2.xml", "DataFiles")] Distribuisce un elemento denominato file2.xml posizionato nel percorso del progetto. Il file viene distribuito alla sottodirectory DataFiles della directory di distribuzione radice.

  • [DeploymentItem("C:\\MyDataFiles\\")]    Distribuisce tutti gli elementi e le directory presenti nella directory MyDataFiles. In questo modo la directory MyDataFiles non viene creata sotto la directory di distribuzione. Tutti i file e le directory all'interno di MyDataFiles verranno distribuiti alla directory di distribuzione radice. Per copiare l'intera struttura della directory MyDataFiles, è necessario specificare MyDataFiles come directory di output.

  • [DeploymentItem("%myDir%\myFile.txt")]    Distribuisce il file myFile.txt se esiste nella directory in cui si risolve %myDir%.

Per ulteriori informazioni sulla modalità di utilizzo degli attributi, vedere Estensione di metadati mediante attributi.

Esempi

La classe seguente crea un file che verrà utilizzato dal metodo di test.

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 classe di test seguente contiene un metodo di test che creerà un'istanza della classe Car che a sua volta creerà un file denominato "testFile1.txt". Questo file verrà distribuito così come identificato nella classe DeploymentItemAttribute. Successivamente, il metodo di test verificherà l'esistenza del file nella stessa directory dell'assembly di test.

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

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.TestTools.UnitTesting