Aracılığıyla paylaş


Tanı Veri Bağdaştırıcısı Nasıl Oluşturulur

Tanı veri bağdaştırıcısı oluşturmak için, Microsoft Visual Studio 2010 kullanarak bir sınıf kitaplığı oluşturursunuz ve Microsoft Visual Studio 2010 Premium tarafından sağlanan Tanı Veri Bağdaştırıcı API'sini sınıf kitaplığınıza eklersiniz. Test çalıştırma sırasında oluşturulan olayları işlerken, çerçeve tarafından sağlanan DataCollectionSink'e istediğiniz bilgiyi bir akış veya dosya olarak gönderin. DataCollectionSink'e gönderilen akışlar veya dosyalar, testleriniz bittiğinde test sonuçlarına ekler olarak depolanır. Bu test sonuçlarınızdan bir hata oluşturursanız veya Sınama Çalıştırıcısı kullandığınızda, dosyalar hataya bağlanır.

Testlerinizi çalıştırdığınız makinayı veya test altındaki uygulamanızı çalıştırmak için kullandığınız ortamın parçası olan makinayı etkileyen bir tanı veri bağdaştırıcısı oluşturabilirsiniz. Örneğin, testleri çalıştırdığınız test makinenizde dosyalar toplama veya uygulamanız için Web sunucusu rolündeki sunan makinedeki dosyaları toplama.

Tanı veri bağdaştırıcınıza, Test Yöneticisi veya Microsoft Visual Studio 2010 kullanarak test ayarlarınızı oluşturduğunuzda görüntüleyen yakın bir ad verebilirsiniz. Test ayarları, testlerinizi çalıştırdığınızda, ortamınızda hangi makina rolünün belirli tanı veri bağdaştırıcılarını çalıştıracağını tanımlamanıza olanak sağlar. Test ayarlarınızı oluşturduğunuzda, tanı veri bağdaştırıcılarınızı yapılandırabilirsiniz. Örneğin, Web sunucunuzdan özel günlükleri toplayan bir tanı veri bağdaştırıcısı oluşturabilirsiniz. Test ayarlarınızı oluşturduğunuzda, makina üzerinde veya bu Web sunucu rolünü gerçekleştiren makinalar üzerinde bu tanı veri bağdaştırıcısını çalıştırmayı seçebilirsiniz ve oluşturulan sadece son üç günlüğü toplamak üzere test ayarlarınız için yapılandırmayı değiştirebilirsiniz. Test ayarları hakkında daha fazla bilgi için bkz. Test Ayarlarını Kullanarak Makinaları Ayarlama ve Tanı Bilgisi Toplama.

Tanı veri bağdaştırıcınızın testte o noktada görevleri gerçekleştirebilmesi için testlerinizi çalıştırdığınızda olaylar oluşturulur.

Önemli

Özellikle birden çok makina üzerinde test çalıştırmalarına sahip olduğunuzda, farklı iş parçacıkları üzerinde bu olaylar oluşturulabilir. Bu nedenle, olası iş parçacığı sorunlarından haberdar olmalı ve istemeden özel bağdaştırıcının iç verilerini bozmamalısınız. Tanı veri bağdaştırıcınızın güvenli iş parçacığı olduğundan emin olun.

Aşağıdakiler, tanı veri bağdaştırıcınızı oluştururken kullanabildiğiniz anahtar olayların kısmi bir listesidir. Tanı veri bağdaştırıcısı olaylarının tam bir listesi için, yapısal DataCollectionEvents sınıfına bakınız.

Olay

Açıklama

SessionStart

Test çalıştırmanızın başlatılması

SessionEnd

Test çalıştırmanızın sonlandırılması

TestCaseStart

Test çalıştırmasındaki her testin başlatılması

TestCaseEnd

Test çalıştırmasındaki her testin sonlandırılması

TestStepStart

Testteki her test adımının başlatılması

TestStepEnd

Testteki her test adımının sonlandırılması

Not

El ile test tamanlandığında, daha fazla veri koleksiyonu olayları, tanı veri bağdaştırıcısına gönderilmez. Test yeniden çalıştırıldığında, yeni bir test durumu tanımlayıcısına sahip olacaktır. Kullanıcı test sırasında bir testi sıfırlandırırsa (TestCaseReset olayı oluşturursa) veya test adımı sonucunu değiştirirse, veri koleksiyonu olayı tanı veri bağdaştırıcısına gönderilmez; ancak test durumu tanımlayıcısı aynı kalır. Test çalışmasının sıfırlanıldığını belirlemek için, tanı veri bağdaştırıcınızda test çalışması tanımlayıcısını izlemelisiniz.

Test ayarlarınızı oluşturduğunuzda sınıflandırdığınız bilgiyi temel alan bir veri dosyası toplayan tanı veri bağdaştırıcısı oluşturmak için aşağıdaki yordamı kullanın.

Özel yapılandırma düzenleyicisi içeren, tam tanılayıcı veri bağdaştırıcısı projesi örneği için bkz. Tanılama Veri Bağdaştırıcısı Oluşturmak için Örnek Proje.

Tanı Veri Bağdaştırıcısı Oluşturma ve Yükleme

Tanı veri bağdaştırıcısı oluşturmak ve yüklemek için

  1. Yeni bir sınıf kitaplığı oluşturun.

    1. Dosya menüsünde, Yeni'yi tıklayın ve sonra Yeni Proje'nin üzerine gelin.

    2. Project types (Proje türleri)'nden, kullanmak için dil seçin.

    3. Visual Studio yüklenmiş şablonlar'dan, Sınıf Kitaplığı'nı seçin.

    4. Tanı Veri Bağdaştırıcınız için bir isim yazın.

    5. Tamam düğmesini tıklatın.

  2. Microsoft.VisualStudio.QualityTools.ExecutionCommon derleyiciyi ekleyin.

    1. Çözüm Gezgini'nde Başvurular'ı sağ tıklatın ve Başvuru Ekle komutunu tıklatın.

    2. .NET öğesini tıklatın ve Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll seçeneğini bulun.

    3. Tamam düğmesini tıklatın.

  3. Microsoft.VisualStudio.QualityTools.Common derleyiciyi ekleyin.

    1. Çözüm Gezgini'nde Başvurular'ı sağ tıklatın ve Başvuru Ekle komutunu seçin.

    2. .NET öğesini tıklatın, Microsoft.VisualStudio.QualityTools.Common.dll seçeneğini bulun.

    3. Tamam düğmesini tıklatın.

  4. Sınıf dosyanıza aşağıdaki using ifadelerini ekleyin:

    using Microsoft.VisualStudio.TestTools.Common;
    using Microsoft.VisualStudio.TestTools.Execution;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System;
    
  5. Şirket, Ürün ve Sürüm'ü Tanı Veri Bağdaştırıcınız için uygun bilgi ile değiştirerek, tanı veri bağdaştırıcınız olarak tanımlamak üzere tanı veri bağdaştırıcınız için sınıfa DataCollectorTypeUriAttribute ekleyin.

    [DataCollectorTypeUri("datacollector://Company/Product/Version")]
    
  6. Tanı Veri Bağdaştırıcınız için parametreleri uygun bilgi ile değiştirerek, sınıfa DataCollectorFriendlyNameAttribute özniteliğini ekleyin.

    [DataCollectorFriendlyName("Collect Log Files", false)]
    

    Bu yakın ad, test ayarları etkinliğinde görüntülenir.

    Not

    Ayrıca, bu veri bağdaştırıcısı için özel yapılandırma düzenleyicinizin Type öğesini belirtmek ve isteğe bağlı olarak düzenleyici için kullanılacak yardım dosyasını belirtmek üzere DataCollectorConfigurationEditorAttribute olanağını da ekleyebilirsiniz.

    Ayrıca, her zaman etkin olması gerektiğini belirtmek üzere DataCollectorEnabledByDefaultAttribute öğesini uygulayabilirsiniz.

  7. Tanı veri bağdaştırıcısı sınıfınız, DataCollector sınıfından aşağıdakiler gibi devralmalıdır:

    public class MyDiagnosticDataAdapter : DataCollector
    
  8. Yerel değişkenleri aşağıdakiler gibi ekleyin:

    private DataCollectionEvents dataEvents;
    private DataCollectionLogger dataLogger;
    private DataCollectionSink dataSink;
    private XmlElement configurationSettings;
    
  9. Initialize yöntemini ve Dispose yöntemini ekleyin. Initialize yönteminde, veri havuzunu ve test ayarlarından herhangi bir yapılandırmayı başlatır ve kullanmak istediğiniz olay işleyicilerini aşağıdaki gibi kaydedersiniz:

    public override void Initialize(
        XmlElement configurationElement, 
        DataCollectionEvents events, 
        DataCollectionSink sink, 
        DataCollectionLogger logger, 
        DataCollectionEnvironmentContext environmentContext)
    {
           dataEvents = events;  // The test events
           dataLogger = logger;  // The error and warning log
           dataSink = sink;      // Saves collected data
           // Configuration from the test settings
           configurationSettings = configurationElement;
    
           // Register common events for the data collector
           // Not all of the events are used in this class
        dataEvents.SessionStart += 
            new EventHandler<SessionStartEventArgs>(OnSessionStart);
        dataEvents.SessionEnd += 
            new EventHandler<SessionEndEventArgs>(OnSessionEnd);
        dataEvents.TestCaseStart += 
            new EventHandler<TestCaseStartEventArgs>(OnTestCaseStart);
        dataEvents.TestCaseEnd += 
            new EventHandler<TestCaseEndEventArgs>(OnTestCaseEnd);
    }
    
    public override void Dispose(bool disposing)
    {
        if (disposing)
        {
            // Unregister the registered events
            dataEvents.SessionStart -= 
                new EventHandler<SessionStartEventArgs>(OnSessionStart);
            dataEvents.SessionEnd -= 
                new EventHandler<SessionEndEventArgs>(OnSessionEnd);
            dataEvents.TestCaseStart -= 
                new EventHandler<TestCaseStartEventArgs>(OnTestCaseStart);
            dataEvents.TestCaseEnd -= 
                new EventHandler<TestCaseEndEventArgs>(OnTestCaseEnd);
        }
    }
    
  10. Test sırasında üretilen günlük dosyasını toplamak için aşağıdaki olay işleyicisini ve özel yöntemi kullanın:

    public void OnTestCaseEnd(sender, TestCaseEndEventArgs e)
    {
        // Get any files to be collected that are
        // configured in your test settings
        List<string> files = getFilesToCollect();
    
        // For each of the files, send the file to the data sink
        // which will attach it to the test results or to a bug
        foreach (string file in files)
        {
            dataSink.SendFileAsync(e.Context, file, false);
        }
    }
    
    // A private method that returns the file names
    private List<string> getFilesToCollect()
    {
        // Get a namespace manager with our namespace
        XmlNamespaceManager nsmgr =
            new XmlNamespaceManager(
                configurationSettings.OwnerDocument.NameTable);
        nsmgr.AddNamespace("ns", 
            "http://MyCompany/schemas/MyDataCollector/1.0");
    
        // Find all of the "File" elements under our configuration
        XmlNodeList files =
            configurationSettings.SelectNodes(
                "//ns:MyDataCollector/ns:File");
    
        // Build the list of files to collect from the 
        // "FullPath" attributes of the "File" nodes.
        List<string> result = new List<string>();
        foreach (XmlNode fileNode in files)
        {
            XmlAttribute pathAttribute = 
                fileNode.Attributes["FullPath"];
            if (pathAttribute != null &&
                !String.IsNullOrEmpty(pathAttribute.Value))
            {
                result.Add(pathAttribute.Value);
            }
        }
    
        return result;
    }
    

    Bu dosyalar test sonuçlarına eklenir. Bu test sonuçlarınızdan bir hata oluşturursanız veya Sınama Çalıştırıcısı kullandığınızda, dosyalar hataya eklenir.

    Test ayarlarınızda kullanmak için veri toplamak üzere kendi düzenleyicinizi kullanmak isterseniz, bkz. Tanılama Veri Bağdaştırıcısı Verileriniz için bir Özel Düzenleyici Nasıl Oluşturulur.

  11. Örneğin, test bittiğinde, test ayarlarında kullanıcının yapılandırmasını temel alan bir günlük dosyası oluşturmak için, bir App.config dosyası oluşturmalı ve çözümünüze eklemelisiniz. Bu dosya aşağıdaki biçime sahiptir ve tanımlamak için tanı veri bağdaştırıcınızın URI'sini içermelidir. "Company/ProductName/Version" için gerçek değerleri yer değiştirin.

    Not

    Tanı veri bağdaştırıcınız için herhangi bir bilgiyi yapılandırmanız gerekmiyorsa, bir yapılandırma dosyası oluşturmanız gerekmez.

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="DataCollectorConfiguration" 
          type="Microsoft.VisualStudio.TestTools.Execution.DataCollectorConfigurationSection, 
          Microsoft.VisualStudio.QualityTools.ExecutionCommon, 
          Version=4.0.0.0, Culture=neutral, 
          PublicKeyToken=b03f5f7f11d50a3a" />
      </configSections>
      <DataCollectorConfiguration 
        xmlns="https://microsoft.com/schemas/VisualStudio/TeamTest/2010">
        <DefaultConfiguration>
          <!-- Your default config settings -->
            <File FullPath="C:\temp\logfile1.txt"/>
            <File FullPath="C:\temp\logfile2.txt"/>
        </DefaultConfiguration>
      </DataCollectorConfiguration>
    </configuration> 
    

    Not

    Varsayılan yapılandırma öğesi, gereksinim duyduğunuz herhangi bir veriyi içerebilir. Kullanıcı test ayarlarında tanı veri bağdaştırıcısı yapılandırmazsa, tanı veri bağdaştırıcınız yürütüldüğünde, varsayılan veri ona geçirilecektir. XML'in ürettiği herhangi bir XML hatasını yoksayabilirsiniz; çünkü <DefaultConfigurations> bölümüne eklediğiniz XML, bildirilen şemanın parçası olmayabilir.

    Yükleme dizinine dayanan aşağıdaki yolda diğer yapılandırma dosya örnekleri mevcuttur: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors.

    Testleri çalıştırdığınızda kullanacağınız ortam için test ayarlarınızı nasıl yapılandıracağınız hakkında daha fazla bilgi için bkz. El ile Testler için Test Ayarları Oluşturma veya Test Planının Bir Parçası Olarak Otomatikleştirilmiş Testler için Test Ayarları Oluşturma.

    Yapılandırma dosyasını yükleme hakkında daha fazla bilgi için bkz. Nasıl yapılır: Özel Tanılama Veri Bağdaştırıcısı Yükleme

  12. Tanı veri bağdaştırıcı derlemenizi oluşturmak için, çözümünüzü oluşturun.

  13. Özel düzenleyicinizi yükleme hakkında daha fazla bilgi için bkz. Nasıl yapılır: Özel Tanılama Veri Bağdaştırıcısı Yükleme.

  14. Testleri çalıştırdığınızda kullanacağınız ortam için test ayarlarınızı nasıl yapılandıracağınız hakkında daha fazla bilgi için bkz. El ile Testler için Test Ayarları Oluşturma veya Test Planının Bir Parçası Olarak Otomatikleştirilmiş Testler için Test Ayarları Oluşturma.

  15. Tanı veri bağdaştırıcınızı seçmek için, ilk önce varolan test ayarlarını seçmelisiniz veya Microsoft Test Yöneticisi veya Microsoft Visual Studio 2010'dan yeni bir bağdaştırıcı oluşturmalısınız. Sınıfa atadığınız yakın ad ile test ayarlarınızın Veri ve Tanılamalar sekmesi üzerinde, bağdaştırıcı görüntülenir.

  16. Testlerinizi Microsoft Test Yöneticisi'dan çalıştırıyorsanız, test ayarlarınızı atamak ve yok saymak için Run with Options (Özellikler ile Çalıştır) komutunu kullanmadan veya testlerinizi çalıştırmadan önce bu test ayarlarını test planınıza atayabilirsiniz. Test ayarları hakkında daha fazla bilgi için, bkz. Test Ayarlarını Kullanarak Makinaları Ayarlama ve Tanı Bilgisi Toplama.

    Microsoft Visual Studio 2010'dan testlerinizi çalıştırırsanız, test ayarlarını aktif olması için test planınızla ilişkilendirmelisiniz. Test ayarları hakkında daha fazla bilgi için, bkz. Visual Studio üzerinden Otomatik Testleri Çalıştırmak için Test Ayarları Oluşturma.

  17. Seçilen tanılama veri bağdaştırıcısıyla test ayarlarını kullanarak testlerinizi çalıştırın.

    Belirttiğiniz veri dosyası test sonuçlarınıza eklenir.

Ayrıca bkz.

Görevler

Visual Studio üzerinden Otomatik Testleri Çalıştırmak için Test Ayarları Oluşturma

Test Planının Bir Parçası Olarak Otomatikleştirilmiş Testler için Test Ayarları Oluşturma

El ile Testler için Test Ayarları Oluşturma

Başvuru

DataCollectorConfigurationEditorAttribute

DataCollectionEvents

DataCollector

[T:Microsoft.VisualStudio.TestTools.Execution.DataCollectionSinkT:Microsoft.VisualStudio.TestTools.Execution.DataCollectorTypeUriAttribute]

DataCollectorFriendlyNameAttribute

DataCollectorEnabledByDefaultAttribute

Kavramlar

Test Ayarlarını Kullanarak Makinaları Ayarlama ve Tanı Bilgisi Toplama

Tanılama Veri Bağdaştırıcısı Verileriniz için bir Özel Düzenleyici Nasıl Oluşturulur