Sdílet prostřednictvím


Metadata nasazovacího prvku

Metadata DeploymentItem identifikují závislosti souborů a složek pro soubory a složky, které testy používají během provádění testů, aby taef mohl tyto soubory správně identifikovat a zkopírovat je (například ve scénáři provádění napříč počítači nasadí Taef soubory identifikované vlastností DeploymentItem do zadaného testovacího počítače).

Implementace Taef DeploymentItem je velmi podobná tomu, které se nachází ve třídě DeploymentItemAttribute v VSTS.

Metadata DeploymentItem lze použít na úrovni sestavení, třídy nebo testu. Položky určené metadaty DeploymentItem budou nasazeny v okamžiku, kdy proběhne příprava (sestavení, testovací třída nebo test). Pokud metadata DeploymentItem určují závislost (například soubor) a tato závislost již v cíli existuje, taEF provede porovnání CRC a zkopíruje soubor pouze v případě, že se změnil. Pokud metadata DeploymentItem určují závislost a není-li závislost nalezena, zaprotokoluje se chyba, která způsobí selhání testu (nebo všechny testy v rámci testovací třídy či celé sestavení odpovídajícím způsobem). TAEF nasadí soubory pouze jednou na sestavení, třídu nebo test, což znamená, že nasazení neproběhne při každém sestavení, třídě nebo provedení testu, pokud jsou řízeny daty.

Syntaxe

[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]

kde FileOrFolderToDeployje soubor nebo cesta ke složce vzhledem k adresáři, kde je testovací knihovna DLL. Pokud FileOrFolderToDeploy je složka, veškerý jeho obsah se zkopíruje; ale samotná složka se nevytvořila. Pokud existuje hierarchie složek v části FileOrFolderToDeploy, Taef zkopíruje všechny tyto adresáře rekurzivně a zachová jejich hierarchii adresářů.

DestinationFolder je cesta ke složce relativní k adresáři, kde se nachází testovací soubory DLL, a kam se kopírují položky nasazení. Cestu DestinationFolder je možné zadat pomocí .. notace (například .. \MyFiles).

Chcete-li provést nasazení do složky, kde je testovací knihovna DLL, můžete vynechat DestinationFolder.

[DeploymentItem("FileOrFolderToDeploy")]

Podporuje se více částí vlastnosti. Například:

[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
    ...
}

Příklady

[DeploymentItem("file1.xml")]  

Značky file1.xml umístěné vedle testovací knihovny DLL jako závislost. Tato metadata lze interpretovat tak, že systém nasadí položku s názvem file1.xml umístěnou ve složce vedle testovací knihovny DLL do adresáře testovací knihovny DLL. Tato konfigurace je užitečná pouze pro scénář napříč počítači.

[DeploymentItem("file2.xml", "DataFiles")]

Nasadí položku s názvem file2.xml umístěnou vedle testovací knihovny DLL do vytvořeného podadresáře DataFiles v adresáři testovací knihovny DLL.

[DeploymentItem("C:\\\\MyDataFiles\\\\MyDataFiles2\\\\")]  

Nasadí všechny položky a adresáře nalezené v adresáři C:\\MyDataFiles\\MyDataFiles2\\\. Tato konfigurace nevytvoří adresář MyDataFiles\MyDataFiles2 pod adresářem nasazení. Všechny soubory a adresáře v souboru MyDataFiles se nasadí do testovacího adresáře dll. Chcete-li zkopírovat celou adresářovou strukturu MyDataFiles\MyDataFiles2, musíte jako výstupní adresář zadat MyDataFiles\MyDataFiles2.

[DeploymentItem("%myDir%\\myFile.txt")]

Nasadí soubor myFile.txt, pokud tento soubor existuje v adresáři, do kterého se %myDir% přeloží. Pokud taEF nedokáže rozpoznat proměnnou prostředí, vyvolá chybu.

Spravované testy

Atribut DeploymentItem (neboli DeploymentItemAttribute) lze použít pro testovací metodu (zdobenou atributem [TestMethod], testovací třídu (zdobenou atributem [TestClass] ) nebo testovací sestavení. Vzhledem k tomu, že VSTS tuto vlastnost na úrovni sestavení nepodporuje, pokud chcete tuto vlastnost použít na úrovni sestavení, musíte ji použít pro nastavení sestavení (zdobeno atributem AssemblyInitialize):

[AssemblyInitialize]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public  static AssemblySetup(TestContext testContext)
{
    ...
}

Nativní testy

U nativních testů je formát vlastnosti podobný formátu spravovaného kódu. Vzhledem k tomu, že nativní vlastnosti mají pouze jednu hodnotu, cesta k položce a volitelný cíl jsou zadány v hodnotě vlastnosti oddělené znakem '>':

BEGIN_TEST_CLASS(TestClassExample)
    TEST_CLASS_PROPERTY(L"DeploymentItem", L"C:\\Dependencies\\>Dependencies")
END_TEST_CLASS()

Testy skriptů

U testů skriptů je formát vlastnosti stejný jako u nativních testů:

<method name="TestOne">
    <TestMethodProperty name="DeploymentItem" value="C:\\Dependencies\\>Dependencies"/>
</method>