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(String, String) | Определяет элемент, развертываемых до начала тестового запуска. |
В начало страницы
Свойства
Имя | Описание | |
---|---|---|
OutputDirectory | Получает путь к каталогу, в который копируется элемент. | |
Path | Получает путь к файлу или папке источника, которые нужно скопировать. | |
TypeId | При реализации в производном классе возвращает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute.) |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
Equals | Инфраструктура. Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute.) | |
GetHashCode | Возвращает хэш-код для данного экземпляра. (Унаследовано от Attribute.) | |
GetType | Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.) | |
IsDefaultAttribute | При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute.) | |
Match | При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute.) | |
ToString | Возвращает строку, представляющую текущий объект. (Унаследовано от Object.) |
В начало страницы
Явные реализации интерфейса
Имя | Описание | |
---|---|---|
_Attribute.GetIDsOfNames | Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute.) | |
_Attribute.GetTypeInfo | Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса. (Унаследовано от Attribute.) | |
_Attribute.GetTypeInfoCount | Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute.) | |
_Attribute.Invoke | Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute.) |
В начало страницы
Заметки
Visual Studio 2012 выполняет тесты либо в папке, в которой для построенной или их в отдельной папке развертывания, уникально в тестовый запуск.Если папка развертывания используется, обработчик тестов создается папка развертывания и скопируйте ее в сборки содержащего тестовый код, приложения и все сборки, на которые они ссылаются.
Однако некоторые тесты требуют дополнительных файлов, таких как тестовые данные, файлы конфигурации, базы данных или явно загруженных сборок.Чтобы сделать эти файлы доступными во время теста, необходимо определить, какие они должны быть скопированы вместе с тестовых сборок.Здесь наилучшей способ сделать это:
Скопируйте файлы в каталог целевого объекта построения в процессе построения.
Если они относятся к одному тестовый проект, включить их в качестве файлов содержимого в тестовом проекте Visual Studio.Выделите их в обозревателе решений, а значение свойства Скопируйте для вывода на Копировать более позднюю версию.
В противном случае укажите задачи после построения для копирования файлов в выходной каталог построения.Например:
xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
Открытие свойства проекта для тестового проекта.В проекте C-#, откройте страницу События построения.В проекте Visual Basic, откройте страницу Компилировать и выберите команду События построения.Добавьте команду копирования в поле Событие после построения.
Используйте DeploymentItemAttribute в методах теста или тестовых классов, чтобы определить файлы и папки, которые должны быть скопированы в выходной каталог построения в каталог развертывания.
Рассмотрит выполнить модульные тесты непосредственно в выходном каталоге построения, чтобы тест быстрее.Это особенно полезно на сервере построения после вернули тестов.Для этого добавьте файл .runsettings в решение, например <DeploymentEnabled>False</DeploymentEnabled>, а также выбирает файл в меню Тест выберите Параметры тестирования.Тот же эффект возникает в любом тестового запуска, в котором DeploymentItemAttribute не используется вообще.
Однако может потребоваться использование не задачи, если это требуется возможность проверить файлы данных после неудачных тестов.
Нельзя исключить использовать папку развертывания, если используется файл .testsettings, который необходим для Интернета и нагрузочные тесты, закодированных тестов пользовательского интерфейса, и любой тест, в котором выполняется развертывание приложения к удаленным компьютерам.
В тестовом запуске, развертываются все элементы в тестах, будет выполняться до любого тестового запуска.
Для получения дополнительной информации см. Практическое руководство. Развертывание файлов для тестов.
DeploymentItemAttribute имеет 2 параметра:
Путь к элементу источника относительно папку назначения.Это может быть файлом или папкой.Чтобы избежать зависимости в структуре проекта, перемещение элемента в выходной каталог построения в процессе построения.Используйте атрибут элемента развертывания для развертывания его оттуда.
(Необязательно) Путь целевого каталога должно быть папкой, и она относительно каталога развертывания.Если папка не существует, она будет создана.Значение по умолчанию каталог развертывания.
Невозможно изменить имя файла с помощью DeploymentItem.
Следующие примеры демонстрируют потребление DeploymentItemAttribute:
[DeploymentItem("file1.xml")]
Копирует file1.xml из выходной папки построения в каталог развертывания.[DeploymentItem(@"Testfiles\")]
Копирует все файлы и папки в папке Testfiles из выходной папки построения в папке развертывания.Вложенные папки реплицируются в папке развертывания.[DeploymentItem("file2.xml", "DataFiles")]
Создает папку с именем Архивом Данных в папке развертывания и копирует file2.xml из выходной папки построения в архивам данных.Примечание Если используется второй параметр, оно должно всегда быть путь папки, не файла.Если папка не существует, она будет создана.Невозможно изменить имя файла с помощью DeploymentItem.
[DeploymentItem(@"Resources\file2.xml", "DataFiles")]
Создает папку с именем Архивом Данных в папке развертывания, если она не существует.Копирует file2.xml из папки ресурсов в папке выходных данных построения в архивам данных.Обратите внимание, что папка ресурсов не будет продублирована в папку назначения.[DeploymentItem(@"TestFiles\", "TestFiles")]
Копирует содержимое TestFiles в вложенную папку папки развертывания.Вложенные папки реплицируются в по назначению.[DeploymentItem(@"..\..\file1.xml")] (не рекомендуется)
Копирует элементы из каталога проекта.В данном примере типичная структура проекта, в которой выходной каталог, например в bin \ debug.Вместо того, чтобы полагаться на структуре проекта таким образом, задайте для свойства Скопируйте для вывода.Развертывание файла из выходного каталога построения.
[DeploymentItem(@"C:\MyDataFiles\")]
Копирует содержимое папки MyDataFiles в папку развертывания.(Если используется файл .testsettings ), [DeploymentItem("%myDir%\myFile.txt")]
Развертывание файла myFile.txt, если этот файл существует в каталоге, на который %myDir% позволяет.
Дополнительные сведения об использовании атрибутов см. в разделе Расширение метаданных с помощью атрибутов.
Примеры
Следующий тест считывает файлы с именами "test*.xml".Чтобы сделать файл доступен в тест и тестируемого приложения, они определяются с помощью DeploymentItemAttribute.Метод теста проверит, что файлы находятся в каталоге развертывания, перед переходом запустить приложение.
using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DeploymentTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
// Copy files from build directory:
[DeploymentItem("test1.xml")]
[DeploymentItem("test2.xml", "Data")]
// Copy files from Resources subdirectory:
[DeploymentItem("Resources\\test3.xml")]
[DeploymentItem("Resources\\test4.xml", "Data")]
public void ConstructorTest()
{
// Verify that the files exist in the deployment directory
Assert.IsTrue(File.Exists("test1.xml"));
Assert.IsTrue(File.Exists("Data\\test2.xml"));
Assert.IsTrue(File.Exists("test3.xml"));
Assert.IsTrue(File.Exists("Data\\test4.xml"));
// Now test the application ...
}
}
}
Imports System
Imports System.IO
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Namespace DeploymentTest
<TestClass()> _
Public Class UnitTest1
<TestMethod()> _
<DeploymentItem("test1.xml")> _
<DeploymentItem("test2.xml", "Data")> _
<DeploymentItem("Resources\test3.xml")> _
<DeploymentItem("Resources\test4.xml", "Data")> _
Sub ConstructorTest()
Assert.IsTrue(File.Exists("test1.xml"))
Assert.IsTrue(File.Exists("Data\test2.xml"))
Assert.IsTrue(File.Exists("test3.xml"))
Assert.IsTrue(File.Exists("Data\test4.xml"))
' Now test the application ...
End Sub
End Class
End Namespace
Потокобезопасность
Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
См. также
Ссылки
Microsoft.VisualStudio.TestTools.UnitTesting - пространство имен