Partager via


DeploymentItemAttribute, classe

Permet de spécifier des éléments de déploiement tels que des fichiers ou des répertoires pour un déploiement de test spécifique. Cette classe ne peut pas être héritée.

Hiérarchie d'héritage

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

Espace de noms :  Microsoft.VisualStudio.TestTools.UnitTesting
Assembly :  Microsoft.VisualStudio.QualityTools.UnitTestFramework (dans Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Syntaxe

'Déclaration
<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

Le type DeploymentItemAttribute expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique DeploymentItemAttribute(String) Initialise une nouvelle instance de la classe DeploymentItemAttribute.Un objet créé avec ce constructeur sera initialisé avec un chemin d'accès à un élément ou répertoire de déploiement.
Méthode publique DeploymentItemAttribute(String, String) Initialise une nouvelle instance de la classe DeploymentItemAttribute.Un objet créé avec ce constructeur sera initialisé avec un chemin d'accès à un élément de déploiement et un répertoire de sortie.

Début

Propriétés

  Nom Description
Propriété publique OutputDirectory Obtient une valeur qui représente le chemin d'accès au répertoire de sortie.
Propriété publique Path Obtient une valeur qui représente le chemin d'accès à l'élément de déploiement.
Propriété publique TypeId Lors de son implémentation dans une classe dérivée, obtient un identificateur unique pour Attribute. (Hérité de Attribute.)

Début

Méthodes

  Nom Description
Méthode publique Equals Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetHashCode Retourne le code de hachage pour cette instance. (Hérité de Attribute.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique IsDefaultAttribute En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute.)
Méthode publique Match En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée _Attribute.GetIDsOfNames Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.GetTypeInfo Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.GetTypeInfoCount Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.Invoke Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute.)

Début

Notes

Selon vos paramètres de test, Microsoft Visual Studio 2010 exécute des tests dans le dossier dans lequel vous les avez créés ou dans un dossier de « déploiement » séparé. Pour plus d'informations sur les paramètres de test, consultez Créer des paramètres de test pour exécuter des tests automatisés à partir de Visual Studio.

Cette section décrit le cas dans lequel Microsoft Visual Studio 2010 exécute des tests dans un autre dossier que celui qui contient les assemblys générés.

Lorsqu'un test est exécuté de cette manière, le test et les assemblys du code sous le test, ainsi que les éléments du déploiement, sont placés dans un dossier de déploiement du test spécifique à cette série de tests. Cet attribut identifie les fichiers et les répertoires qui contiennent les fichiers qui sont utilisés par le test déployé pour s'exécuter. Le moteur de test effectue une copie des éléments de déploiement et les place dans un répertoire de déploiement de test basé sur le OutputDirectory spécifié ou dans le répertoire par défaut.

Cet attribut peut être spécifié sur une méthode ou une classe de test. Toutefois, il n'est pas hérité par les classes dérivées.

Il peut y avoir plusieurs instances de cet attribut pour spécifier plusieurs éléments. Le chemin d'accès de l'élément peut être absolu ou relatif. Les chemins d'accès relatifs sont liés au chemin d'accès au projet.

Les exemples suivants illustrent les différentes utilisations de DeploymentItemAttribute.

  • [DeploymentItem("file1.xml")]   Déploie un élément nommé file1.xml situé dans le chemin d'accès au projet. Le fichier est déployé dans le répertoire racine de déploiement.

  • [DeploymentItem("file2.xml", "DataFiles")]   Déploie un élément nommé file2.xml situé dans le chemin d'accès au projet. Le fichier est déployé dans le sous-répertoire DataFiles du répertoire racine de déploiement.

  • [DeploymentItem("C:\\MyDataFiles\\")]   Déploie tous les éléments et répertoires trouvés dans le répertoire MyDataFiles. Cela ne crée pas de répertoire MyDataFiles sous le répertoire de déploiement. Tous les fichiers et répertoires dans MyDataFiles seront déployés dans le répertoire racine de déploiement. Pour copier la totalité de la structure du répertoire MyDataFiles, vous devez spécifier MyDataFiles comme répertoire de sortie.

  • [DeploymentItem("%myDir%\myFile.txt")]   Déploie le fichier myFile.txt si ce fichier existe dans le répertoire dans lequel %myDir% se résout.

Pour plus d'informations sur l'utilisation d'attributs, consultez Extension des métadonnées à l'aide des attributs.

Exemples

La classe suivante crée un fichier qui sera utilisé par la méthode de 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 de test suivante contient une méthode de test qui instanciera la classe Car qui créera un fichier nommé « testFile1.txt ». Ce fichier sera déployé tel qu'identifié dans le DeploymentItemAttribute. Puis, la méthode de test testera si le fichier existe dans le même répertoire que l'assembly de 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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.TestTools.UnitTesting, espace de noms