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 - пространство имен