Aracılığıyla paylaş


Nasıl yapılır: Testler için Dosyaları Dağıtma

 

Yayýmlanma: Nisan 2016

Bir testi çalıştırmadan önce, test ve uygulama başvuru yaptıkları diğer derlemelerle birlikte çalışabilecekleri bir konuma kopyalanmalıdır. Test genellikle test verileri, yapılandırma dosyaları, veritabanı ve açıkça yüklenen derlemeler gibi ek dosyalar gerektirir. Bu ek dosyaların test için kullanılabilir olmasını sağlamak için, dağıtılacaklarını belirtmeniz gerekir.

Testler nerede çalıştırılır?

Visual Studio, birden fazla yerde testler çalıştırabilirsiniz:

Test dosyalarını yerel bir test için nasıl dağıtırım?

En iyi yolu şudur:

  1. Yapı sürecinin bir parçası olarak yapı hedef dizinin dosyaları kopyalayın.

    • Bunlar bir test projesi için özelse, bunları Visual Studio test projesine içerik dosyaları olarak dahil edin. Bunları Çözüm Gezgini'nde seçin ve Yeniyse Kopyalamak için Çıktıya kopyala özelliğini ayarlayın.

    • Aksi takdirde, yapı çıktı dizinine dosyalar kopyalamak için yapı sonrası görevi tanımlayın. Örne?in:

      xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
      

      Test projenizin proje özelliklerini açın. Bir C# projesinde Build Events sayfasını açın. Bir Visual Basic projesinde, Compile sayfasını açın ve Build Events öğesini seçin. Oluşturma sonrası olay alanına kopyala komutu ekleyin.

  2. Kullanım DeploymentItemAttribute test yöntemlerini veya test sınıflar yapı çıkış dizininden dağıtım dizinine kopyalanacağı klasör ve dosya belirtin.

    [TestClass]
    class TestClass1
    {
      [TestMethod]
      [DeploymentItem("source", "targetFolder")]
      public void Test1()
      {
        string testData = System.IO.File.ReadAllText(@"targetFolder\source");
        ...
    } }
    
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("source", "targetFolder")> _
        Sub TestMethod1()
            Dim testData As String = _
                System.IO.File.ReadAllText(@"targetFolder\source")
        ...
        End Sub
    End Class
    
    • kaynak bir dosya veya dizin kopyalanamadı. Yol mutlak veya çıktı dizinine göre olabilir.

    • targetFolder isteğe bağlıdır. Kaynak dosya veya dizin içeriğinin kopyalanacağı dizindir. Yol mutlak veya dağıtım dizinine göre olabilir. Varsayılan değer ".", dağıtım dizinidir.

      Not

      targetFolder her zaman değil bir dizin hiçbir zaman bir dosya yolu.DeploymentItem kullanarak dosyanın adını değiştiremezsiniz.

    Birden çok kez olarak istediğiniz ve yöntemleri test veya sınıflar test etmek için uygulayabilirsiniz özniteliğini kullanabilirsiniz.

    Çalıştırılacak testler kümesi seçtiğinizde, test çalıştırmadan önce başlar DeploymentItem öznitelikleriyle belirtilen tüm öğeleri kopyalanır.

  3. Birim testlerinizin doğrudan yapı çıktı dizininde çalıştığını düşünün, böylece test daha hızlı çalışır. Testlerinizde denetledikten sonra bu yapı sunucusunda özellikle yararlıdır.

    Bunu yapmak için *.runsettings bir dosya eklemek çözümünüze, dahil <DeploymentEnabled>False</DeploymentEnabled>, dosyasında seçip Test, Test ayarlarını menü. Aynı etki, DeploymentItemAttribute'un hiç kullanılmadığı test çalışmalarında da oluşur.

    Ancak, kullanıyorsanız, bir dağıtım klasörü kullanarak yoksayılamaz bir *.testsettings web ve yük testleri için gerekli olan dosya kodlanmış kullanıcı Arabirimi testleri ve uzak makineleri bir uygulamaya dağıtım herhangi bir test.

*.Runsettings dosyası nedir?

Bir dosya herhangi bir ad ve dosya adı uzantısı '.runsettings'. Bazı amaçlar için birim testleri yapılandırmak için kullanılır. Bir oluşturmak isterseniz, örnekten kopyalayın .runsettings dosyasını kullanarak birim testlerini yapılandırma. Çözüm klasöründe put ve ardından etkin hale kullanarak Test > Test ayarlarını menü.

*.Testsettings dosya ne zaman kullanmalıyım?

Bir *.testsettings dosya (yani, herhangi bir ad ve dosya adı uzantısı '.testsettings' dosyası) *.runsettings daha eski bir alternatifidir. Oluşturmak isterseniz, menü öğesini kullanmak Test > Test ayarlarını menü. Çözüm klasöründe dosyayı kaydedin ve etkin hale kullanarak Test > Test ayarlarını menü.

Kullanmaktan kaçının bir *.testsettings daha yavaş çalışmasına testleri kolaylaştırır ve üçüncü taraf testi çerçeveleri ile uyumsuz olduğundan yapabiliyorsanız dosya. Düz birim sınamaları için gerekmez. Ancak bu durumda bir gerekir:

Bir *.testsettings dosyası kullanıyorsanız, uygulama ve test derlemelerinizi her zaman bir dağıtım klasöre kopyalanır.

.testsettings düzenleyicisinin Dağıtım sayfasında veri dosyaları ve dizinleri belirtebilirsiniz. Her test çalışmasından önce dağıtım klasörüne kopyalanırlar. Bu sayfada belirtilen öğe yolları her zaman çözüm dizini ile görelidir ve her zaman uygulama ve test derlemeleri yanında dağıtım klasörüne dağıtılır.

Mutlak yollar kullanmak veya farklı hedef dizin belirlemek istiyorsanız, XML düzenleyicisi ile .testsettings dosyasını açın ve buna benzer bir parça ekleyin:

<Deployment>
  <DeploymentItem filename="C:\MyTestData\TestData.mdb"
        outputDirectory="D:\TestDB\" />
</Deployment>

outputDirectory dağıtım dizinine mutlak veya göreli olabilir.

Ayrı bir dağıtım klasörü ne zaman kullanılır?

Visual Studio kullanarak testlerinizi çalıştırırsanız, dağıtım klasörü çözüm klasöründe TestResults altında oluşturulur.

Herhangi bir test yöntemlerini veya testi sınıflarda varsa DeploymentItem özniteliğini veya kullanıyorsanız, ayrı dağıtım klasörü kullanılan bir *.testsettings dosya.

Bir dağıtım klasörü kullanıyorsanız, aşağıdaki dosya ve klasörler testler çalıştırılmadan önce dağıtım klasörüne kopyalanır:

Testler için yerel dağıtım klasörü

Yerel test çalıştırması için dağıtım klasörleri

Dosyalar ne zaman ve hangi sırayla dağıtılır?

Bir test çalışmasında, herhangi bir test başlamadan önce dağıtılacak tüm dosyalar kopyalanır. Test çalıştırması tek bir komutla veya zamanlanmış olayla başlatılan toplu testtir. Bu belirli test yöntemi için dağıtılmak üzere bir veri dosyası belirtirseniz, bu dosyanın da aynı çalıştırmada gerçekleştirilen diğer her test için kullanılabilir olacağı anlamına gelir.

Aşağıdaki öğeler gösterilen sırayla kopyalanır. Daha sonra kopyalanan öğeler, aynı ada sahip olmaları halinde, daha önce kopyalananların üzerine yazılır.

  1. DeploymentItemAttribute kullanılarak belirtilen öğeler

  2. Bağımlılıklar. Örneğin, uygulama yapılandırma dosyaları ve bağımlı derlemeler.

  3. Belirtilen öğe bir *.testsettingsbir kullanıyorsanız, dosya.

  4. Araçlandırılmış ikili dosyalar. Örneğin kod kapsamını ya da IntelliTrace'i etkinleştirmek için işaretlenmiş derlemeler.

    Yerinde işaretleme kullanıyorsanız, ikili dosyalar ilk önce işaretlenir ve ardından dağıtım dizinine kopyalanır; aksi halde, bunlar ilk olarak kopyalanır ve sonra işaretlenir. Yerinde araçlandırma, yerel olarak çalıştırılan testler için varsayılan ayardır.

  5. Testi oluşturan dosya veya dosyalar. Bunlar, birim testleri için test derlemelerine, el işe çalışan testler için metne veya .mht dosyalarına ilişkin test derlemelerini veya genel testler gibi diğer test türlerine ilişkin dosyaları içerir.

TestResults dizininde ne var?

  • Test Çalıştır klasörü. TestResults, başlayan her test çalışması için bir klasör içerir. Adı, oluşturulduğu saati içerir.

    Kurulum ve temizleme komut dosyalarını *.testsettings dosyasında belirtirseniz, test çalışması klasörü bu komut dosyalarını içerir.

  • Out. Her test çalışması klasörü Çıkış adında bir klasör içerir. Çıkış klasörü, test çalıştırması başlatıldığında derlemelerin ve diğer dağıtım dosyalarının kopyalandığı gerçek dağıtım klasörüdür.

  • İçinde. Kod kapsamı sonuçları ve belirli diğer test sonuçları In olarak adlandırılan bir klasörde depolanır.

Ayrıca bkz.

DeploymentItemAttribute
Visual Studio Testleri için Test Ayarlarını Belirtme
Derlemeleri İzleme ve Yeniden İmzalama