Freigeben über


DeploymentItemAttribute-Klasse

Wird zum Angeben von Bereitstellungselementen für einen Test verwendet, beispielsweise Dateien oder Verzeichnisse. Diese Klasse kann nicht vererbt werden.

Vererbungshierarchie

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

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

Syntax

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

Der DeploymentItemAttribute-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode DeploymentItemAttribute(String) Initialisiert eine neue Instanz der DeploymentItemAttribute-Klasse.Ein mit diesem Konstruktor erstelltes Objekt wird mit einem Pfad zu einem Bereitstellungselement oder -verzeichnis initialisiert.
Öffentliche Methode DeploymentItemAttribute(String, String) Initialisiert eine neue Instanz der DeploymentItemAttribute-Klasse.Ein mit diesem Konstruktor erstelltes Objekt wird mit einem Pfad zu einem Bereitstellungselement und einem Ausgabeverzeichnis initialisiert.

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft OutputDirectory Ruft einen Wert ab, der den Pfad zum Ausgabeverzeichnis darstellt.
Öffentliche Eigenschaft Path Ruft einen Wert ab, der den Pfad zum Bereitstellungselement darstellt.
Öffentliche Eigenschaft TypeId Bei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Equals Infrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht. (Von Attribute geerbt.)
Geschützte Methode Finalize Ermöglicht es einem Objekt, zu versuchen, Ressourcen freizugeben und führt andere Bereinigungsvorgänge aus, bevor es von Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche Methode GetHashCode Gibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode IsDefaultAttribute Beim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche Methode Match Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)

Zum Seitenanfang

Explizite Schnittstellenimplementierungen

  Name Beschreibung
Explizite SchnittstellenimplementierungPrivate Methode _Attribute.GetIDsOfNames Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode _Attribute.GetTypeInfo Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode _Attribute.GetTypeInfoCount Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode _Attribute.Invoke Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)

Zum Seitenanfang

Hinweise

Je nach den Testeinstellungen führt Microsoft Visual Studio 2010 Tests in dem Ordner aus, in dem Sie sie erstellt haben oder in einem separaten "Bereitstellungsordner". Weitere Informationen zu Testeinstellungen finden Sie unter Erstellen von Testeinstellungen zum Ausführen von automatisierten Tests in Visual Studio.

In diesem Abschnitt wird der Fall erläutert, in dem Microsoft Visual Studio 2010 Tests in einem anderen Ordner als dem Ordner ausführt, der die erstellten Assemblys enthält.

Wenn ein Test auf diese Art und Weise ausgeführt wird, werden die Testassembly, alle zu testenden Assemblys und die Bereitstellungselemente in einem für diesen Testlauf eindeutigen Testbereitstellungsordner abgelegt. Dieses Attribut bezeichnet Dateien sowie Verzeichnisse mit den enthaltenen Dateien, die für die Ausführung des bereitgestellten Tests verwendet werden. Das Testmodul legt Kopien der Bereitstellungselemente in einem Testbereitstellungsverzeichnis an, das auf dem angegebenen OutputDirectory oder dem Standardverzeichnis basiert.

Dieses Attribut kann für eine Testmethode oder Testklasse angegeben werden. Dieses Attribut wird jedoch nicht von abgeleiteten Klassen geerbt.

Dieses Attribut kann mehrere Instanzen haben, um mehrere Elemente anzugeben. Der Elementpfad kann relativ oder absolut sein. Relative Pfade sind relativ zum Projektpfad.

In den folgenden Beispielen wird die unterschiedliche Verwendung des DeploymentItemAttribute veranschaulicht.

  • [DeploymentItem("file1.xml")]   Stellt das Element "file1.xml" im Projektpfad bereit. Die Datei wird im Bereitstellungsstammverzeichnis bereitgestellt.

  • [DeploymentItem("file2.xml", "DataFiles")]   Stellt das Element "file2.xml" im Projektpfad bereit. Die Datei wird im DataFiles-Unterverzeichnis des Bereitstellungsstammverzeichnisses bereitgestellt.

  • [DeploymentItem("C:\\MyDataFiles\\")]    Stellt alle Elemente und Verzeichnisse im Verzeichnis MyDataFiles bereit. Es wird kein Verzeichnis MyDataFiles im Bereitstellungsverzeichnis erstellt. Alle Dateien und Verzeichnisse im Verzeichnis MyDataFiles werden im Bereitstellungsstammverzeichnis bereitgestellt. Um die gesamte MyDataFiles-Verzeichnisstruktur zu kopieren, müssen Sie MyDataFiles als Ausgabeverzeichnis angeben.

  • [DeploymentItem("%myDir%\myFile.txt")]    Stellt die Datei myFile.txt bereit, wenn diese Datei in dem Verzeichnis vorhanden ist, dem %myDir% zugeordnet ist.

Weitere Informationen zum Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Beispiele

Die folgende Klasse erstellt eine Datei, die von der Testmethode verwendet wird.

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

Die folgende Testklasse enthält eine Testmethode, die die Car-Klasse instanziiert, die eine Datei mit dem Namen "testFile1.txt" erstellt. Diese Datei wird bereitgestellt, wie im DeploymentItemAttribute angegeben. Anschließend überprüft die Testmethode, ob sich die Datei in demselben Verzeichnis befindet wie die Testassembly.

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.VisualStudio.TestTools.UnitTesting-Namespace