DeploymentItemAttribute-Klasse
Aktualisiert: November 2007
Wird zum Angeben von Bereitstellungselementen für einen Test verwendet, beispielsweise Dateien oder Verzeichnisse. Diese Klasse kann nicht geerbt werden.
Namespace: Microsoft.VisualStudio.TestTools.UnitTesting
Assembly: Microsoft.VisualStudio.SmartDevice.UnitTestFramework (in Microsoft.VisualStudio.SmartDevice.UnitTestFramework.dll)
Syntax
<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
Hinweise
Je nach Ihren Konfigurationseinstellungen für die Testausführung führt Visual Studio Team System 2008 Test Edition Tests in dem Ordner aus, in dem Sie sie erstellt haben, oder in einem separaten Bereitstellungsordner. Weitere Informationen zum Festlegen von Einstellungen für die Testausführung finden Sie unter Gewusst wie: Konfigurieren der Testbereitstellung.
In diesem Abschnitt wird der Fall erläutert, in dem Visual Studio Team System 2008 Test Edition 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. Zusätzliche Informationen finden Sie unter Testen der Bereitstellung.
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 zur RelativePathRoot-Einstellung in der Datei .testrunconfig.
In den folgenden Beispielen wird die unterschiedliche Verwendung des DeploymentItemAttribute veranschaulicht.
[DeploymentItem("file1.xml")] Stellt ein Element mit dem Namen file1.xml bereit, das sich in RelativeRootPath befindet. Die Datei wird im Bereitstellungsstammverzeichnis bereitgestellt.
[DeploymentItem("file2.xml", "DataFiles")] Stellt ein Element mit dem Namen file2.xml bereit, das sich in RelativeRootPath befindet. 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
Vererbungshierarchie
System.Object
System.Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItemAttribute
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Siehe auch
Referenz
DeploymentItemAttribute-Member
Microsoft.VisualStudio.TestTools.UnitTesting-Namespace