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 | |
---|---|---|
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. | |
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 | |
---|---|---|
OutputDirectory | Ottiene un valore che rappresenta il percorso della directory di output. | |
Path | Ottiene un valore che rappresenta il percorso dell'elemento di distribuzione. | |
TypeId | Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Equals | Infrastruttura. Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. (Ereditato da Attribute) | |
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) | |
GetHashCode | Restituisce il codice hash per l'istanza. (Ereditato da Attribute) | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) | |
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) | |
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) | |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) | |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Implementazioni esplicite dell'interfaccia
Nome | Descrizione | |
---|---|---|
_Attribute.GetIDsOfNames | Esegue il mapping di un set di nomi a un set corrispondente di ID di invio. (Ereditato da Attribute) | |
_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) | |
_Attribute.GetTypeInfoCount | Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) | |
_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