Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метаданные DeploymentItem определяют зависимости файлов и папок для файлов и папок, используемых тестами во время выполнения тестов, чтобы Taef мог идентифицировать их и копировать их соответствующим образом (например, в сценарии выполнения нескольких компьютеров Taef развернет файлы, идентифицированные свойством DeploymentItem, на указанном тестовом компьютере).
Реализация Taef DeploymentItem очень похожа на реализацию DeploymentItemAttribute в VSTS.
Метаданные DeploymentItem можно применять на уровне сборки, класса или теста. Элементы, указанные метаданными DeploymentItem, будут развернуты при выполнении программы установки корреспондента времени (сборки, тестового класса или теста). Если метаданные DeploymentItem указывают зависимость (например, файл) и что зависимость уже существует в месте назначения, TAEF выполняет сравнение CRC и копирует файл только в том случае, если он изменился. Если метаданные DeploymentItem указывают зависимость, и эту зависимость не удается найти, регистрируется ошибка, которая приведет к сбою теста (или всех тестов классов или сборок, соответственно). TAEF развертывает файлы только один раз для каждой сборки, класса или теста. То есть развертывание не выполняется при каждом выполнении сборки, класса или теста, если они выполняются на основе данных.
Синтаксис
[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]
FileOrFolderToDeploy — это файл или путь к папке относительно каталога с тестовой DLL. Если FileOrFolderToDeploy является папкой, все его содержимое копируется; Однако сама папка не создается. Если в fileOrFolderToDeploy есть иерархия папок, Taef будет копировать все эти каталоги рекурсивно, сохраняя их иерархию каталогов.
DestinationFolder — это путь к папке относительно каталога, где находится тестовая библиотека DLL и где копируются элементы развертывания. Путь destinationFolder можно указать с помощью .. нотация (например, ..\MyFiles).
Чтобы развернуть в папку, где находится ваша тестовая библиотека DLL, можно исключить DestinationFolder.
[DeploymentItem("FileOrFolderToDeploy")]
Поддерживаются несколько элементов свойства. Рассмотрим пример.
[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
...
}
Примеры
[DeploymentItem("file1.xml")]
Теги file1.xml, расположенные рядом с тестовой библиотекой DLL в качестве зависимости. Эти метаданные можно интерпретировать так, как система развертывает элемент с именем file1.xml, расположенный в папке рядом с тестовой библиотекой DLL в каталоге тестовой библиотеки DLL. Эта конфигурация полезна только для сценариев между компьютерами.
[DeploymentItem("file2.xml", "DataFiles")]
Развертывает элемент с именем file2.xml, расположенный рядом с тестовой библиотекой DLL, в созданном подкаталоге DataFiles в каталоге тестовой библиотеки DLL.
[DeploymentItem("C:\\\\MyDataFiles\\\\MyDataFiles2\\\\")]
Развертывает все элементы и каталоги, найденные в каталоге C:\\MyDataFiles\\MyDataFiles2\\. Эта конфигурация не создает каталог MyDataFiles\MyDataFiles2 под каталогом развертывания. Все файлы и каталоги в MyDataFiles будут развернуты для тестирования каталога dll. Чтобы скопировать всю структуру каталогов MyDataFiles\MyDataFiles2, необходимо указать MyDataFiles\MyDataFiles2 в качестве выходного каталога.
[DeploymentItem("%myDir%\\myFile.txt")]
Развёртывает файл myFile.txt, если этот файл существует в каталоге, к которому определяются %myDir%. Если TAEF не удается устранить переменную среды, она выдает ошибку.
Управляемые тесты
Атрибут DeploymentItem (aka DeploymentItemAttribute) можно применить к методу тестирования (декорированному атрибутом [TestMethod], классу тестирования (декорированному атрибутом [TestClass]) или тестовой сборке. Однако так как VSTS не поддерживает это свойство на уровне сборки, чтобы применить это свойство на уровне сборки, необходимо применить его к настройке сборки (декорирован атрибутом AssemblyInitialize):
[AssemblyInitialize]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public static AssemblySetup(TestContext testContext)
{
...
}
Встроенные тесты
Для собственных тестов формат свойства аналогичен формату управляемого кода. Однако, так как собственные свойства имеют только одно значение, путь к элементу и необязательное назначение указываются в значении свойства, разделенном символом '>' :
BEGIN_TEST_CLASS(TestClassExample)
TEST_CLASS_PROPERTY(L"DeploymentItem", L"C:\\Dependencies\\>Dependencies")
END_TEST_CLASS()
Тесты скриптов
Для тестов скрипта формат свойства совпадает с форматом собственных тестов:
<method name="TestOne">
<TestMethodProperty name="DeploymentItem" value="C:\\Dependencies\\>Dependencies"/>
</method>