Поделиться через


DeploymentItemAttribute - класс

Используется для указания элементов развертывания, таких как файлы или каталоги, при развертывании по отдельным тестам. Этот класс не наследуется.

Иерархия наследования

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

Пространство имен:  Microsoft.VisualStudio.TestTools.UnitTesting
Сборка:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (в Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Синтаксис

'Декларация
<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

Тип DeploymentItemAttribute предоставляет следующие члены.

Конструкторы

  Имя Описание
Открытый метод DeploymentItemAttribute(String) Инициализирует новый экземпляр класса DeploymentItemAttribute.Объект, созданный этим конструктором, инициализируется с использованием пути к элементу или каталогу развертывания.
Открытый метод DeploymentItemAttribute(String, String) Инициализирует новый экземпляр класса DeploymentItemAttribute.Объект, созданный этим конструктором, инициализируется с использованием пути к элементу развертывания и к выходному каталогу.

В начало страницы

Свойства

  Имя Описание
Открытое свойство OutputDirectory Получает значение, представляющее путь к выходному каталогу.
Открытое свойство Path Получает значение, представляющее путь к элементу развертывания.
Открытое свойство TypeId При реализации в производном классе возвращает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute.)

В начало страницы

Методы

  Имя Описание
Открытый метод Equals Инфраструктура. Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute.)
Защищенный метод Finalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)
Открытый метод GetHashCode Возвращает хеш-код данного экземпляра. (Унаследовано от Attribute.)
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Открытый метод IsDefaultAttribute При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute.)
Открытый метод Match При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute.)
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Открытый метод ToString Возвращение строки, представляющей текущий объект. (Унаследовано от Object.)

В начало страницы

Явные реализации интерфейса

  Имя Описание
Явная реализация интерфейсаЗакрытый метод _Attribute.GetIDsOfNames Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.GetTypeInfo Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса. (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.GetTypeInfoCount Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.Invoke Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute.)

В начало страницы

Заметки

В зависимости от тестовых настроек, Microsoft Visual Studio 2010 выполняет тесты либо в папке, в которой вы их создали, либо в отдельной папке "deployment". Дополнительные сведения о параметрах тестирования см. в разделе Создание параметров тестирования для запуска автоматических тестов из Visual Studio.

В данном разделе рассматривается ситуация, когда Microsoft Visual Studio 2010 запускает тесты в папке, отличной от папки с построенными сборками.

Когда тест запускается таким образом, сборки теста, сборки кода теста и элементы развертывания размещаются в папке развертывания тестов, уникальной для данного тестового запуска. Этот атрибут идентифицирует файлы и каталоги, которые содержат файлы, используемые развернутым тестом для выполнения. Модуль тестирования делает копию разворачиваемых элементов и размещает их в каталоге развертывания тестов согласно заданному параметру OutputDirectory или в каталоге по умолчанию.

Этот атрибут можно указать в методе теста или в тестовом классе. Однако этот атрибут не наследуется производным классом.

Для задания нескольких элементов можно использовать несколько экземпляров этого атрибута. Путь элемента может быть как относительным, так и абсолютным. Относительные пути заданы относительно пути к проекту

В следующих примерах демонстрируются различные способы применения DeploymentItemAttribute.

  • [DeploymentItem("file1.xml")]   Развертывает элемент с именем file1.xml, находящийся по пути проекта. Этот файл разворачивается в корневом каталоге развертывания.

  • [DeploymentItem("file2.xml", "DataFiles")]   Развертывает элемент с именем file2.xml, находящийся по пути проекта. Этот файл разворачивается в подкаталоге DataFiles корневого каталога развертывания.

  • [DeploymentItem("C:\\MyDataFiles\\")]    Разворачивает все элементы и каталоги, найденные в каталоге MyDataFiles. Каталог MyDataFiles в каталоге развертывания при этом не создается. Все файлы и каталоги из MyDataFiles будут развернуты в корневом каталоге развертывания. Чтобы скопировать всю структуру каталога MyDataFiles, необходимо указать в качестве выходного каталога MyDataFiles.

  • [DeploymentItem("%myDir%\myFile.txt")]   Разворачивает файл myFile.txt, если этот файл существует в каталоге, с которым сопоставляется %myDir%.

Дополнительные сведения об использовании атрибутов см. в разделе Расширение метаданных с помощью атрибутов.

Примеры

Следующий класс создает файл, который будет использоваться методом теста.

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

Следующий класс содержит метод теста, который будет создавать класс Car, создающий файл с именем "testFile1.txt". Этот файл будет развернут согласно установкам в классе DeploymentItemAttribute. Затем метод теста будет проверять, существует ли этот файл в том же каталоге, что и сборка теста.

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

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.TestTools.UnitTesting - пространство имен