Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met metagegevens van DeploymentItem worden bestands- en mapafhankelijkheden geïdentificeerd voor de bestanden en mappen die worden gebruikt door de tests tijdens de uitvoering van de tests, zodat Taef deze kan identificeren en op de juiste manier kunnen kopiëren (in een scenario voor uitvoering op meerdere machines implementeert Taef bijvoorbeeld de bestanden die zijn geïdentificeerd door de eigenschap DeploymentItem op de opgegeven testmachine).
Taef DeploymentItem-implementatie is vergelijkbaar met die in de klasse DeploymentItemAttribute in VSTS.
DeploymentItem-metagegevens kunnen worden toegepast op assembly-, klasse- of testniveau. De items die zijn gespecificeerd door DeploymentItem-metagegevens, worden geïmplementeerd tegen de tijd dat de overeenkomstige (assembly, testklasse of test) set-up wordt uitgevoerd. Als de metagegevens van DeploymentItem een afhankelijkheid specificeren (bijvoorbeeld een bestand) en die afhankelijkheid al bestaat op de bestemming, voert TAEF een CRC-vergelijking uit en kopieert het bestand alleen als het is gewijzigd. Als met metagegevens van DeploymentItem een afhankelijkheid wordt opgegeven en de afhankelijkheid niet kan worden gevonden, wordt een fout geregistreerd die de test mislukt (of alle testklasse- of assemblytests dienovereenkomstig). TAEF implementeert alleen bestanden eenmaal per assembly, klasse of test. Dat wil gezegd, de implementatie vindt niet plaats bij elke assembly, klasse of testuitbreiding als deze gegevensgestuurd zijn.
Syntaxis
[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]
waarbij FileOrFolderToDeployeen bestand of een mappad is ten opzichte van de map waarin de test-DLL zich bevindt. Als FileOrFolderToDeploy een map is, wordt alle inhoud gekopieerd; de map zelf wordt echter niet gemaakt. Als er een hiërarchie van mappen onder FileOrFolderToDeploy is, kopieert Taef al deze mappen recursief, waarbij de maphiërarchie behouden blijft.
DestinationFolder is een mappad ten opzichte van de map waarin de test-DLL zich bevindt en waar de implementatie-items worden gekopieerd. Het pad DestinationFolder kan worden opgegeven met behulp van .. notatie (bijvoorbeeld ..\MyFiles).
Als u wilt implementeren in de map waarin uw test-DLL zich bevindt, kunt u DestinationFolder weglaten.
[DeploymentItem("FileOrFolderToDeploy")]
Meerdere delen van het eigendom worden ondersteund. Voorbeeld:
[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
...
}
Voorbeelden
[DeploymentItem("file1.xml")]
Tags file1.xml die zich naast het test-DLL-bestand bevinden als een afhankelijkheid. Deze metagegevens kunnen zo worden geïnterpreteerd dat het systeem een item genaamd file1.xml implementeert uit de map naast de test-DLL naar de directory van de test-DLL. Deze configuratie is alleen nuttig voor scenario's voor verschillende machines.
[DeploymentItem("file2.xml", "DataFiles")]
Hiermee wordt een item met de naam file2.xml naast de test-DLL geïmplementeerd in de nieuw aangemaakte submap DataFiles in de map van de test-DLL.
[DeploymentItem("C:\\\\MyDataFiles\\\\MyDataFiles2\\\\")]
Hiermee worden alle items en mappen geïmplementeerd die in de map C:\\MyDataFiles\\MyDataFiles2\\ zijn gevonden. Met deze configuratie maakt u niet de map MyDataFiles\MyDataFiles2 onder de implementatiemap. Alle bestanden en mappen in MyDataFiles worden geïmplementeerd om de DLL-map te testen. Als u de volledige mapstructuur MyDataFiles\MyDataFiles2 wilt kopiëren, moet u MyDataFiles\MyDataFiles2 opgeven als uitvoermap.
[DeploymentItem("%myDir%\\myFile.txt")]
Hiermee wordt het bestand myFile.txt geïmplementeerd als dat bestand bestaat in de map waarnaar %myDir% wordt omgezet. Als TAEF de omgevingsvariabele niet kan oplossen, treedt er een fout op.
Beheerde tests
Het kenmerk DeploymentItem (aka DeploymentItemAttribute) kan worden toegepast op een testmethode (ingericht met het kenmerk [TestMethod]), testklasse (ingericht met het kenmerk [TestClass]) of testassembly. Omdat VSTS deze eigenschap echter niet op assemblyniveau ondersteunt, moet u deze toepassen op assembly-instellingen (ingericht door het kenmerk AssemblyInitialize):
[AssemblyInitialize]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public static AssemblySetup(TestContext testContext)
{
...
}
Systeemeigen tests
Voor systeemeigen tests is de eigenschapsindeling vergelijkbaar met de beheerde code-indeling. Omdat systeemeigen eigenschappen echter slechts één waarde hebben, worden het itempad en de optionele bestemming opgegeven in de eigenschapswaarde, gescheiden door een '>' teken:
BEGIN_TEST_CLASS(TestClassExample)
TEST_CLASS_PROPERTY(L"DeploymentItem", L"C:\\Dependencies\\>Dependencies")
END_TEST_CLASS()
Scripttests
Voor scripttests is de eigenschapsindeling hetzelfde als voor systeemeigen tests:
<method name="TestOne">
<TestMethodProperty name="DeploymentItem" value="C:\\Dependencies\\>Dependencies"/>
</method>