Udostępnij za pośrednictwem


Jak: tworzenie diagnostyczne karta danych

Aby utworzyć karty dane diagnostyczne, utworzyć bibliotekę klas przy użyciu programu Visual Studio, a następnie dodaj diagnostyczne API karty dane dostarczone przez Visual Studio premii do biblioteki klas.Wszelkie informacje, które jako strumienia lub pliku, aby wysłać DataCollectionSink dostarczonych w ramach podczas obsługi zdarzenia, które są wywoływane podczas badania.Strumienie lub plików wysłanych do DataCollectionSink są przechowywane jako załączniki do wyników badań, po zakończeniu pracy programu badań.Tworząc błędów z tych badań wyników lub podczas używania Test Runner, pliki są także połączone do błędów.

Można utworzyć karty danych diagnostycznych, która wpływa na maszyny, gdy testy są lub komputer, który jest częścią środowiska używanego do uruchamiania aplikacji w obszarze badania.Na przykład zbieranie plików na komputerze badania, gdzie testy są pliki uruchamiania lub zbierania na pracujących maszyny w roli serwera sieci Web aplikacji.

Karta dane diagnostyczne można nadać przyjaznej nazwy, którą wyświetla podczas tworzenia test przy użyciu ustawienia Test Manager lub przy użyciu programu Visual Studio.Testuj ustawienia umożliwiają zdefiniowanie roli komputera uruchomi określone dane diagnostyczne kart w środowisku po uruchomieniu testów.Można również skonfigurować karty danych diagnostycznych podczas tworzenia ustawień testu.Na przykład może utworzyć karty danych diagnostycznych, która gromadzi niestandardowych dzienników z serwera sieci Web.Podczas tworzenia ustawień test można wybrać do uruchomienia tej karty danych diagnostycznych na maszyny lub maszyny, które wykonują tę rolę serwera sieci Web i konfiguracji dla ustawienia test, aby zebrać tylko ostatnie trzy utworzone dzienniki można modyfikować.Więcej informacji o ustawieniach test, zobacz Konfigurowanie maszyn i zbierania informacji diagnostycznych przy użyciu ustawień testu.

Zdarzenia są wywoływane po uruchomieniu testów, dzięki czemu karta dane diagnostyczne mogą wykonywać zadania w tym punkcie w badaniu.

Ważna uwagaWażne

Zdarzenia te mogą wzrosnąć na różne wątki, zwłaszcza, gdy testy na wielu komputerach.Należy w związku z tym, należy pamiętać o kwestiach wątkowości możliwe i nie przypadkowo spowodować uszkodzenie danych wewnętrznych adapter niestandardowy.Upewnij się, że karta dane diagnostyczne jest bezpieczeństwo wątków.

Oto lista częściowe klucza zdarzeń, które można używać podczas tworzenia karty danych diagnostycznych.Aby uzyskać pełną listę zdarzeń karty danych diagnostycznych, zobacz streszczenia DataCollectionEvents klasy.

Zdarzenie

Opis

SessionStart

Start your testu

SessionEnd

Koniec testu użytkownika

TestCaseStart

Początek każdego z testów przebieg testu

TestCaseEnd

Koniec każdego z testów przebieg testu

TestStepStart

Początek każdego etapu badania, w badaniu

TestStepEnd

Koniec każdego etapu badania, w badaniu

[!UWAGA]

Po zakończeniu badania ręcznego więcej zdarzeń zbierania danych są wysyłane do karty danych diagnostycznych.Podczas badania jest ponownie, będzie nowy identyfikator testowy.Jeśli użytkownik resetuje test podczas testu (który wzbudzi TestCaseReset zdarzenia), lub zmienia test krok wynik, nie zdarzenie zbierania danych jest wysyłane do karty danych diagnostycznych, ale identyfikator testowy pozostaje bez zmian.Aby ustalić, czy sprawa test został zresetowany, należy śledzić identyfikator testowy w karty danych diagnostycznych.

Poniższa procedura umożliwia utworzenie karty danych diagnostycznych, która gromadzi pliku danych, który jest na podstawie informacji skonfigurować podczas tworzenia ustawień testu.

Projektu karty danych diagnostycznych kompletnym przykładzie, włączając edytora konfiguracji niestandardowych, zobacz Przykładowy projekt do tworzenia diagnostyczne karta danych.

Tworzenie i instalowanie karty danych diagnostycznych

Aby utworzyć i zainstalować kartę dane diagnostyczne

  1. Utwórz nową bibliotekę klas.

    1. Na pliku menu wybierz Nowy, a następnie wskaż Nowy projekt.

    2. Z typów projektów, wybierz język.

    3. Z programu Visual Studio zainstalowane szablonów, zaznacz Biblioteka klas.

    4. Wpisz nazwę karty danych diagnostycznych.

    5. Wybierz OK.

  2. Dodawanie zestawu Microsoft.VisualStudio.QualityTools.ExecutionCommon.

    1. W oknie Solution Explorer, kliknij prawym przyciskiem myszy odniesienia i wybierz polecenie Dodaj odwołanie polecenia.

    2. Wybierz .NET i zlokalizuj Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll.

    3. Wybierz OK.

  3. Dodawanie zestawu Microsoft.VisualStudio.QualityTools.Common.

    1. W oknie Solution Explorer, kliknij prawym przyciskiem myszy odniesienia i wybierz Dodaj odwołanie polecenia.

    2. Choose /.NET, locate Microsoft.VisualStudio.QualityTools.Common.dll.

    3. Wybierz OK.

  4. Dodaj następującą using instrukcji do pliku klasy:

    using Microsoft.VisualStudio.TestTools.Common;
    using Microsoft.VisualStudio.TestTools.Execution;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System;
    
  5. Dodaj DataCollectorTypeUriAttribute do klasy dla karty danych diagnostycznych do identyfikacji karty danych diagnostycznych, zastępując firmy, produktu, i wersji odpowiednie informacje diagnostyczne karty danych:

    [DataCollectorTypeUri("datacollector://Company/Product/Version")]
    
  6. Dodaj DataCollectorFriendlyNameAttribute atrybutu do klasy, zastępując parametry odpowiednie informacje diagnostyczne karty danych:

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

    Przyjazna nazwa jest wyświetlana w test aktywności ustawienia.

    [!UWAGA]

    Można również dodać DataCollectorConfigurationEditorAttribute do określenia Type z niestandardowych konfiguracji edytora dla tej karty danych i opcjonalnie określić w pliku pomocy dla edytora.

    Można również zastosować DataCollectorEnabledByDefaultAttribute , aby określić, że zawsze należy ją włączyć.

  7. Musi dziedziczyć po klasie karty dane diagnostyczne DataCollector klasy następująco:

    public class MyDiagnosticDataAdapter : DataCollector
    
  8. Dodaj następujące zmienne lokalne:

    private DataCollectionEvents dataEvents;
    private DataCollectionLogger dataLogger;
    private DataCollectionSink dataSink;
    private XmlElement configurationSettings;
    
  9. Dodaj Initialize metody i Dispose metody.W Initialize metody, należy zainicjować ujście danych, wszystkie dane konfiguracji Testuj ustawienia i rejestr zdarzeń chcesz użyć następująco:

    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. Użyj następujący kod obsługi zdarzenia i metody prywatne zbieranie pliku dziennika generowane podczas badania:

    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;
    }
    

    Te pliki są dołączone do wyników badań.Tworząc błędów z tych badań wyników lub podczas używania Test Runner, pliki są również dołączone do błędów.

    Jeśli chcesz użyć własnego edytora zbierania danych do wykorzystania w ustawieniach test, zobacz Jak: tworzenie edytora niestandardowe dla danych dla karty danych diagnostycznych.

  11. Aby zebrać pliku dziennika, gdy test zakończy oparte na skonfigurowane ustawienia badania przez użytkownika, należy utworzyć App.config plik i dodać go do rozwiązania.Plik ten ma następujący format i musi zawierać identyfikator URI dla identyfikacji karty danych diagnostycznych."Przedsiębiorstwo/NazwaProduktu/Version" podstawić rzeczywiste wartości.

    [!UWAGA]

    Jeśli nie trzeba skonfigurować wszelkie informacje, karty danych diagnostycznych, nie trzeba utworzyć plik konfiguracji.

    <?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/11">
        <DefaultConfiguration>
          <!-- Your default config settings -->
            <File FullPath="C:\temp\logfile1.txt"/>
            <File FullPath="C:\temp\logfile2.txt"/>
        </DefaultConfiguration>
      </DataCollectorConfiguration>
    </configuration> 
    

    [!UWAGA]

    Element Konfiguracja domyślna może zawierać wszystkie wymagane dane.Jeśli użytkownik nie skonfigurować adapter danych diagnostycznych w Testuj ustawienia, a następnie dane domyślne będą przekazywane do karty danych diagnostycznych, gdy jest wykonywane.Ponieważ XML można dodać do <DefaultConfigurations> sekcji nie może być częścią schematu zadeklarowanej, generuje błędy XML można zignorować.

    Istnieją inne przykłady plików konfiguracyjnych w następującej ścieżce oparte na katalogu instalacji: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors.

    Aby uzyskać więcej informacji na temat konfigurowania ustawienia test, aby użyć środowiska po uruchomieniu testów, zobacz Wprowadzanie ustawień testów w programie Microsoft Test Manager lub Tworzenie ustawień automatycznych testów systemowych przy użyciu programu Microsoft Test Manager.

    Aby uzyskać więcej informacji dotyczących instalowania pliku konfiguracji zobaczJak: Instalowanie karty danych diagnostycznych niestandardowe

  12. Skompiluj rozwiązanie do tworzenia zestawu karty sieci danych diagnostycznych.

  13. Informacji dotyczących instalowania edytora niestandardowych, zobacz Jak: Instalowanie karty danych diagnostycznych niestandardowe.

  14. Aby uzyskać więcej informacji na temat konfigurowania ustawienia test, aby użyć środowiska po uruchomieniu testów, zobacz Wprowadzanie ustawień testów w programie Microsoft Test Manager lub Tworzenie ustawień automatycznych testów systemowych przy użyciu programu Microsoft Test Manager.

  15. Aby zaznaczyć karty danych diagnostycznych, należy najpierw wybierz istniejące ustawienia badania lub Utwórz nowy z Microsoft Test Manager lub Visual Studio.Karta jest wyświetlana na danych i diagnostyki kartę Ustawienia test przyjazną nazwę, który jest przypisany do klasy.

  16. Jeśli testy z Microsoft Test Manager, można przypisać te testowania ustawień do planu badań, przed uruchomieniem testy, lub użyj uruchomić z opcjami polecenia Testuj ustawienia przypisywania i zastępowania testowania ustawień.Więcej informacji o ustawieniach test, zobacz Konfigurowanie maszyn i zbierania informacji diagnostycznych przy użyciu ustawień testu.

    Testy korzystający z programu Visual Studio, należy ustawić te testowania ustawień na aktywny.Więcej informacji o ustawieniach test, zobacz Wprowadzanie ustawień testów w programie Visual Studio.

  17. Uruchom testy przy użyciu ustawień testu z kartą dane diagnostyczne zaznaczone.

    Plik danych, który określony jest załączony do wyniki testu.

Zobacz też

Zadania

Tworzenie ustawień automatycznych testów systemowych przy użyciu programu Microsoft Test Manager

Informacje

DataCollectorConfigurationEditorAttribute

DataCollectionEvents

DataCollector

DataCollectionSink

DataCollectorTypeUriAttribute

DataCollectorFriendlyNameAttribute

DataCollectorEnabledByDefaultAttribute

Koncepcje

Konfigurowanie maszyn i zbierania informacji diagnostycznych przy użyciu ustawień testu

Jak: tworzenie edytora niestandardowe dla danych dla karty danych diagnostycznych

Inne zasoby

Wprowadzanie ustawień testów w programie Visual Studio

Wprowadzanie ustawień testów w programie Microsoft Test Manager