Postupy: Vytvoření adaptéru diagnostických dat
Chcete-li vytvořit adaptér diagnostických dat, vytvořte knihovnu třídy pomocí sady Visual Studio a přidejte rozhraní API adaptéru diagnostických dat poskytovaný sadou Visual Studio Premium do knihovny tříd.Odešlete všechny informace, které chcete použít jako datový proud nebo soubor do DataCollectionSink poskytovaného rámcem při zpracování událostí, které jsou aktivovány v průběhu zkoušky.Datové proudy nebo soubory odeslané DataCollectionSink jsou uloženy jako přílohy k výsledkům testu po dokončení testu.Vytvoříte-li chybu z těchto výsledků testování nebo při použití Test Runner je připojen k chybě také odkaz na soubory.
Můžete vytvořit adaptér diagnostických dat, který má vliv na počítač, kde probíhají testy, nebo počítač, který je součástí prostředí, které používáte ke spuštění aplikace v rámci testu.Například shromažďování souborů na zkušební počítač, kde jsou spouštěny testy nebo shromažďování souborů na počítač, který je v roli webového serveru vaší aplikace.
Adaptéru diagnostických dat můžete přidělit popisný název, který se zobrazí při vytvoření nastavení testu pomocí Test Manager nebo pomocí sady Visual Studio.Nastavení testu umožňuje určit, které role počítače budou spouštět určité adaptéry diagnostických dat ve vašem prostředí při spuštění testů.Můžete také nakonfigurovat adaptéry diagnostických dat při vytvoření nastavení testu.Můžete například vytvořit adaptér diagnostických dat, který shromažďuje vlastní protokoly z webového serveru.Při vytváření nastavení testu můžete spustit tento adaptér diagnostických dat v počítači nebo počítačích, které provádějí tuto roli webového serveru, a můžete změnit konfiguraci nastavení testu k získání pouze posledních tří protokolů, které byly vytvořeny.Další informace o nastaveních testu naleznete v části Nastavení počítačů a shromažďování diagnostických informací s použitím nastavení testu.
Události jsou vyvolány při spuštění testů, aby adaptér diagnostických dat mohl vykonat úkoly v daném okamžiku testu.
![]() |
---|
Tyto události mohou být vyvolány v různých vláknech, zvláště když máte testy spuštěné ve více počítačích.Proto musíte vzít na vědomí možné problémy s tvorbou vláken a nikoli neúmyslně poškodit vnitřní data vlastního adaptéru.Ujistěte se, že váš adaptér diagnostických dat je bezpečný pro přístup z více vláken. |
Následuje částečný seznam klíčových událostí, které můžete použít při vytváření vašeho adaptéru diagnostických dat.Úplný seznam diagnostických dat adaptéru událostí naleznete v abstraktní třídě DataCollectionEvents.
Událost |
Description |
---|---|
Začátek vašeho spuštění testu |
|
Konec vašeho spuštění testu |
|
Začátek každého testu v průběhu testu |
|
Konec každého testu v průběhu testu |
|
Začátek každého kroku testu v testu |
|
Konec každého kroku testu v testu |
[!POZNÁMKA]
Po dokončení ručního testu nejsou odeslány žádné další události kolekce do adaptéru diagnostických dat.Pokud je test znovu spuštěn, bude mít nový identifikátor testovacího případu.Pokud uživatel obnoví test při zkoušce (která vyvolává událost TestCaseReset), nebo změní výsledek testovacího kroku, žádná událost kolekce dat není odeslána do adaptéru diagnostických dat, ale identifikátor testovacího případu zůstává stejný.Chcete-li určit, zda byl testovací případ obnoven, musíte sledovat identifikátor testovacího případu v adaptéru diagnostických dat.
Pomocí následujícího postupu vytvořte adaptér diagnostických dat, který shromažďuje datový soubor, který je založen na informacích, které konfigurujete při vytvoření nastavení testu.
Kompletní příklad diagnostických dat adaptéru projektu, včetně vlastního konfiguračního editoru, naleznete v Ukázkový projekt pro vytvoření adaptéru diagnostických dat.
Vytvoření a instalace adaptéru diagnostických dat.
Vytvoření a instalace adaptéru diagnostických dat
Vytvořte novou knihovnu tříd.
V nabídce Soubor vyberte příkaz Nový a poté klikněte na Nový projekt.
V Typy projektů vyberte jazyk, který chcete použít.
Z Instalované šablony sady Visual Studio vyberte Knihovna tříd.
Zadejte název adaptéru diagnostických dat.
Klepněte na tlačítko OK.
Přidejte sestavení Microsoft.VisualStudio.QualityTools.ExecutionCommon.
V Průzkumníku řešení klikněte pravým tlačítkem na možnost Odkazy a poté vyberte příkaz Přidat odkaz.
Zvolte .NET a vyhledejte Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll.
Klepněte na tlačítko OK.
Přidejte sestavení Microsoft.VisualStudio.QualityTools.Common.
V Průzkumníku řešení klikněte pravým tlačítkem na možnost Odkazy a poté vyberte příkaz Přidat odkaz.
Zvolte /.NET a vyhledejte Microsoft.VisualStudio.QualityTools.Common.dll.
Klepněte na tlačítko OK.
Do souboru třídy přidejte následující příkazy using:
using Microsoft.VisualStudio.TestTools.Common; using Microsoft.VisualStudio.TestTools.Execution; using System.Linq; using System.Text; using System.Xml; using System;
Přidejte DataCollectorTypeUriAttribute do třídy pro adaptér diagnostických dat k jeho identifikaci jako adaptéru diagnostických dat, čímž nahradíte pole Společnost, Produkt a Verze odpovídajícími informacemi pro adaptér diagnostických dat:
[DataCollectorTypeUri("datacollector://Company/Product/Version")]
Přidejte atribut DataCollectorFriendlyNameAttribute do třídy, nahraďte parametry příslušnými informacemi pro adaptér diagnostických dat:
[DataCollectorFriendlyName("Collect Log Files", false)]
Tento popisný název se zobrazuje v aktivitě nastavení testu.
[!POZNÁMKA]
Můžete také přidat DataCollectorConfigurationEditorAttribute k určení editoru vlastní konfigurace Type pro tento datový adaptér a volitelně zadat soubor nápovědy pro použití v editoru.
Můžete také použít DataCollectorEnabledByDefaultAttribute, chcete-li určit, že by měla být vždy povolena.
Vaše třída adaptéru diagnostických dat musí dědit z třídy DataCollector takto:
public class MyDiagnosticDataAdapter : DataCollector
Přidejte lokální proměnné následujícím způsobem:
private DataCollectionEvents dataEvents; private DataCollectionLogger dataLogger; private DataCollectionSink dataSink; private XmlElement configurationSettings;
Přidejte metodu Initialize a Dispose.V metodě Initialize následujícím způsobem inicializujete jímky dat, všechna konfigurační data z nastavení testu a registrujete obslužné rutiny událostí, které chcete použít:
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); } }
Použijte následující kód pro obslužnou rutinu události a soukromou metodu k získání souboru protokolu generovaného během testu:
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; }
Tyto soubory jsou připojeny k výsledkům testu.Vytvoříte-li chybu z těchto výsledků testování nebo při použití Test Runner jsou soubory také připojeny k chybě.
Pokud chcete použít vlastní editor pro shromažďování dat pro použití v nastavení testu, přečtěte si téma Postupy: Vytvoření vlastního editoru dat pro adaptér diagnostických dat.
Pokud chcete získat soubor protokolu po dokončení testu na základě toho, co uživatel nakonfiguroval v nastavení testu, je třeba vytvořit soubor App.config a přidat do řešení.Tento soubor má následující formát a musí obsahovat identifikátor URI pro adaptér diagnostických dat k identifikaci.Nahraďte skutečné hodnoty v řetězci "Společnost/NázevProduktu/Verze".
[!POZNÁMKA]
Pokud nepotřebujete konfigurovat žádné informace pro adaptér diagnostických dat, není nutné vytvořit konfigurační soubor.
<?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"> <DataCollector typeUri="datacollector://MyCompany/MyProduct/1.0"> <DefaultConfiguration> <!-- Your default config settings --> <Binaries> <Binary FullPath="C:\Example\Example.dll"/> <Binary FullPath="\\Server2\Example2.dll"/> </Binaries> <Symbols> <Symbol FullPath="\\ExampleServer\ExampleSymbol.pdb"/> </Symbols> </DefaultConfiguration> </DataCollector> </DataCollectorConfiguration> </configuration>
[!POZNÁMKA]
Prvek výchozí konfigurační může obsahovat všechna data, která požadujete.Pokud uživatel nenakonfiguruje adaptér diagnostických dat v nastaveních testu, pak výchozí data budou předána adaptéru diagnostických dat po spuštění.Protože XML, které přidáte oddílu <DefaultConfigurations> není pravděpodobně součástí deklarovaného schématu, můžete ignorovat všechny chyby generované z XML.
Existují jiné příklady konfiguračních souborů v následující cestě podle instalačního adresáře: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors.
Další informace o konfiguraci nastavení testu na použití prostředí při spuštění testů naleznete v tématu Shromažďování více diagnostických dat v manuálních testech nebo Vytváření nastavení testů pro automatizované systémové testy pomocí nástroje Microsoft Test Manager.
Další informace o instalaci konfiguračního souboru naleznete v tématu Postupy: Instalace vlastního adaptéru diagnostických dat.
Sestavte řešení k vytvoření sestavení adaptéru diagnostických dat.
Informace o instalaci vlastního editoru naleznete v tématu Postupy: Instalace vlastního adaptéru diagnostických dat.
Další informace o konfiguraci nastavení testu na použití prostředí při spuštění testů naleznete v tématu Shromažďování více diagnostických dat v manuálních testech nebo Vytváření nastavení testů pro automatizované systémové testy pomocí nástroje Microsoft Test Manager.
Pokud chcete vybrat adaptér diagnostických dat pro test, musíte nejprve vybrat existující nastavení testu nebo vytvořit nové z aplikace Microsoft Test Manager nebo Visual Studio.Adaptér se zobrazí na kartě Data a diagnostika ve vašem nastavení testu s popisným názvem, který jste přiřadili do třídy.
Pokud spouštíte testy z Microsoft Test Manager, můžete přiřadit tato nastavení testu do plánu testování před spuštěním testů nebo pomocí příkazu Spustit s možnostmi pro přidělení nastavení testu a přepsání nastavení testu.Další informace o nastaveních testu naleznete v části Nastavení počítačů a shromažďování diagnostických informací s použitím nastavení testu.
Pokud používáte testy ze sady Visual Studio, musíte nastavit tyto nastavení testů, aby byly aktivní.Další informace o nastaveních testu naleznete v části Nastavení testů v sadě Visual Studio.
Spusťte testy pomocí nastavení testu společně s výběrem adaptéru diagnostiky datu.
K výsledkům testů je připojen datový soubor, který jste zadali.
Viz také
Úkoly
Vytváření nastavení testů pro automatizované systémové testy pomocí nástroje Microsoft Test Manager
Referenční dokumentace
DataCollectorConfigurationEditorAttribute
DataCollectorFriendlyNameAttribute
DataCollectorEnabledByDefaultAttribute
Koncepty
Nastavení počítačů a shromažďování diagnostických informací s použitím nastavení testu
Postupy: Vytvoření vlastního editoru dat pro adaptér diagnostických dat