Aracılığıyla paylaş


DeploymentItem Meta Verileri

DeploymentItem meta verileri, Tef'in bunları tanımlayıp uygun şekilde kopyalayabilmesi için testlerin yürütülmesi sırasında testler tarafından kullanılan dosya ve klasörler için dosya ve klasör bağımlılıklarını tanımlar (örneğin, makineler arası yürütme senaryosunda, Taef DeploymentItem özelliği tarafından tanımlanan dosyaları belirtilen test makinesine dağıtır).

Taef DeploymentItem uygulaması, VSTS'deki DeploymentItemAttribute Sınıfında bulunana çok benzer.

DeploymentItem meta verileri derleme, sınıf veya test düzeyinde uygulanabilir. DeploymentItem meta verileri tarafından belirtilen öğeler, zaman muhabiri (derleme, test sınıfı veya test) kurulum çalıştırmaları tarafından dağıtılır. DeploymentItem meta verileri bir bağımlılık (örneğin, bir dosya) belirtiyorsa ve bu bağımlılık hedefte zaten mevcutsa, TAEF bir CRC karşılaştırması yapar ve dosyayı yalnızca değişmişse kopyalar. DeploymentItem meta verileri bir bağımlılık belirtiyor ve bu bağımlılık bulunamıyorsa, bir hata kaydedilir ve test başarısız olur (veya test sınıfı veya tüm derleme testleri buna göre başarısız olur). TAEF dosyaları derleme, sınıf veya test başına yalnızca bir kez dağıtır; diğer bir ifadeyle, bunlar veri temelliyse dağıtım her derlemede, sınıfta veya test genişletmesinde gerçekleşmez.

Sözdizimi

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

burada FileOrFolderToDeploy, test dll'sinin bulunduğu dizine göre bir dosya veya klasör yoludur. FileOrFolderToDeploy bir klasörse, tüm içeriği kopyalanır; ancak klasörün kendisi oluşturulmaz. FileOrFolderToDeploy altında bir klasör hiyerarşisi varsa, Taef dizin hiyerarşisini koruyarak tüm bu dizinleri özyinelemeli olarak kopyalar.

DestinationFolder , test dll'sinin bulunduğu dizine ve dağıtım öğelerinin kopyalandığı dizine göre bir klasör yoludur. DestinationFolder yolu kullanılarak belirtilebilir.. gösterimi (örneğin, ..\MyFiles).

Test dll'nizin bulunduğu klasöre dağıtmak için DestinationFolder'ı atlayabilirsiniz.

[DeploymentItem("FileOrFolderToDeploy")]

Özelliğin birden çok bileşeni desteklenir. Örneğin:

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

Örnekler

[DeploymentItem("file1.xml")]  

Test dll'sinin yanında bağımlılık olarak bulunan file1.xml etiketler. Bu meta veriler, sistemin test dll'sinin yanındaki klasörde bulunan file1.xml adlı bir öğeyi test dll dizinine dağıttığı şeklinde yorumlanabilir. Bu yapılandırma yalnızca makineler arası senaryo için kullanışlıdır.

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

Test dll'sinin yanında bulunan file2.xml adlı bir öğeyi test dll dizininde oluşturulan DataFiles alt dizinine dağıtır.

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

C:\\MyDataFiles\\MyDataFiles2\\ dizininde bulunan tüm öğeleri ve dizinleri dağıtır. Bu yapılandırma, dağıtım dizininin altında MyDataFiles\MyDataFiles2 dizinini oluşturmaz. MyDataFiles içindeki tüm dosyalar ve dizinler dll dizinini test etmek için dağıtılır. MyDataFiles\MyDataFiles2 dizin yapısının tamamını kopyalamak için MyDataFiles\MyDataFiles2 öğesini çıkış dizini olarak belirtmeniz gerekir.

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

Eğer dosya %myDir% çözümlendiği dizinde mevcutsa, dosya myFile.txt'ı dağıtır. TAEF ortam değişkenini çözümleyemiyorsa bir hata oluşturur.

Yönetilen Testler

DeploymentItem (diğer adıyla DeploymentItemAttribute) özniteliği bir test yöntemine ([TestMethod] özniteliğiyle dekore edilmiştir), test sınıfına ([TestClass] özniteliğiyle dekore edilmiştir) veya test derlemesine uygulanabilir. Ancak VSTS bu özelliği derleme düzeyinde desteklemediğinden, bu özelliği derleme düzeyine uygulamak için derleme kurulumuna uygulamanız gerekir (AssemblyInitialize özniteliğiyle dekore edilmiştir):

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

Yerel Testler

Yerel testler için özellik biçimi yönetilen kod biçimine benzer. Ancak, yerel özellikler yalnızca tek bir değere sahip olduğundan, öğe yolu ve isteğe bağlı hedef özellik değerinde '>' karakteriyle ayrılmış olarak belirtilir:

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

Betik Testleri

Betik testleri için özellik biçimi yerel testlerde olduğu gibi aynıdır:

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