Procedura: creare un adattatore dati di diagnostica
Per creare un adattatore dati di diagnostica, è necessario creare una libreria di classi mediante Microsoft Visual Studio 2010, quindi aggiungere le API dell'adattatore dati di diagnostica fornite da Microsoft Visual Studio 2010 Premium alla libreria di classi. Inviare tutte le informazioni desiderate come flusso o come file a DataCollectionSink fornito dal framework, durante la gestione degli eventi che vengono generati durante l'esecuzione dei test. I flussi o i file inviati a DataCollectionSink vengono archiviati come allegati nei risultati del test al termine di quest'ultimo. Se si crea un bug da questi risultati o quando si utilizza Test Runner, anche i file vengono collegati al bug.
È possibile creare un adattatore dati di diagnostica che influisca sul computer in cui vengono eseguiti i test oppure su un computer che fa parte dell'ambiente in uso per eseguire l'applicazione sottoposta a test, ad esempio la raccolta di file nel computer in cui vengono eseguiti i test o la raccolta di file nel computer a cui è assegnato il ruolo di server Web per l'applicazione.
È possibile assegnare all'adattatore dati di diagnostica un nome descrittivo che viene visualizzato durante la creazione delle impostazioni di test mediante Test Manager o Microsoft Visual Studio 2010. Le impostazioni di test consentono di definire con quale ruolo computer verranno eseguiti adattatori dati di diagnostica specifici nell'ambiente durante l'esecuzione dei test. È inoltre possibile configurare gli adattatori dati di diagnostica quando si creano le impostazioni di test. È ad esempio possibile creare un adattatore dati di diagnostica che raccolta log personalizzati dal server Web. Quando si creano le impostazioni di test, è possibile scegliere di eseguire questo adattatore dati di diagnostica nel computer o nei computer in cui viene eseguito questo ruolo del server Web ed è possibile modificare la configurazione per le impostazioni di test per raccogliere solo gli ultimi tre log creati. Per ulteriori informazioni sulle impostazioni di test, vedere Configurazione di computer e raccolta di informazioni diagnostiche mediante impostazioni test.
Eventi vengono generati quando si eseguono i test in modo che l'adattatore dati di diagnostica sia in grado di eseguire attività nel punto specifico del test.
Importante |
---|
Questi eventi possono essere generati su thread differenti, specialmente quando si dispone di test in esecuzione in più computer. Pertanto, è necessario tenere presente i possibili problemi relativi al threading e non danneggiare inavvertitamente i dati interni dell'adattatore personalizzato. Verificare che l'adattatore dati di diagnostica sia thread-safe. |
Di seguito è riportato un elenco parziale di eventi chiave che è possibile utilizzare quando si crea l'adattatore dati di diagnostica. Per un elenco completo di eventi dell'adattatore dati di diagnostica, vedere la classe astratta DataCollectionEvents.
Evento |
Descrizione |
---|---|
Inizio dell'esecuzione di test |
|
Fine dell'esecuzione di test |
|
Inizio di ciascun test nell'esecuzione di test |
|
Fine di ciascun test nell'esecuzione di test |
|
Inizio di ciascun passo di un test |
|
Fine di ciascun passo di un test |
Nota
Quando viene completato un test manuale, non vengono inviati altri eventi di raccolta dati all'adattatore dati di diagnostica. Quando un test viene rieseguito, gli viene assegnato un nuovo identificatore di test case. Se un utente reimposta un test durante un test, generando l'evento TestCaseReset, oppure modifica il risultato di un passo del test, non viene inviato alcun evento di raccolta dei dati all'adattatore dati di diagnostica, ma l'identificatore del test case rimane lo stesso. Per determinare se un test case è stato reimpostato, è necessario tenere traccia dell'identificatore di test case nell'adattatore dati di diagnostica.
Utilizzare la procedura seguente per creare un adattatore dati di diagnostica che consenta di raccogliere un file di dati basato sulle informazioni configurate alla creazione delle impostazioni di test.
Per un progetto di adattatore dati di diagnostica di esempio completo, incluso un editor di configurazione personalizzato, vedere Esempio di progetto per creare un adattatore dati di diagnostica.
Creazione e installazione di un adattatore dati di diagnostica
Per creare e installare un adattatore dati di diagnostica
Creare una nuova libreria di classi.
Scegliere Nuovo dal menu File, quindi fare clic su Nuovo progetto.
Da Tipi progetto, selezionare il linguaggio da utilizzare.
Da Modelli Visual Studio installati, selezionare Libreria di classi.
Digitare un nome per l'adattatore dati di diagnostica.
Fare clic su OK.
Aggiungere l'assembly Microsoft.VisualStudio.QualityTools.ExecutionCommon.
In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Riferimenti e scegliere Aggiungi riferimento.
Fare clic su .NET e individuare Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll.
Fare clic su OK.
Aggiungere l'assembly Microsoft.VisualStudio.QualityTools.Common.
In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Riferimenti e scegliere Aggiungi riferimento.
Fare clic su /.NET e individuare Microsoft.VisualStudio.QualityTools.Common.dll.
Fare clic su OK.
Aggiungere le seguenti istruzioni using al file della classe:
using Microsoft.VisualStudio.TestTools.Common; using Microsoft.VisualStudio.TestTools.Execution; using System.Linq; using System.Text; using System.Xml; using System;
Aggiungere DataCollectorTypeUriAttribute alla classe dell'adattatore dati di diagnostica in modo che venga identificato come adattatore dati di diagnostica, sostituendo Company, Product e Version con le informazioni appropriate per l'adattatore dati di diagnostica:
[DataCollectorTypeUri("datacollector://Company/Product/Version")]
Aggiungere l'attributo DataCollectorFriendlyNameAttribute alla classe, sostituendo i parametri con le informazioni appropriate per l'adattatore dati di diagnostica:
[DataCollectorFriendlyName("Collect Log Files", false)]
Questo nome descrittivo viene visualizzato nell'attività delle impostazioni di test.
Nota
È possibile aggiungere anche DataCollectorConfigurationEditorAttribute per specificare l'oggetto Type dell'editor di configurazione personalizzato per questo adattatore dati e specificare facoltativamente il file della Guida da utilizzare per l'editor.
È inoltre possibile applicare DataCollectorEnabledByDefaultAttribute per specificare che deve essere sempre abilitato.
La classe dell'adattatore dati di diagnostica deve ereditare dalla classe DataCollector come indicato di seguito:
public class MyDiagnosticDataAdapter : DataCollector
Aggiungere le variabili locali come segue:
private DataCollectionEvents dataEvents; private DataCollectionLogger dataLogger; private DataCollectionSink dataSink; private XmlElement configurationSettings;
Aggiungere il metodo Initialize e un metodo Dispose. Nel metodo Initialize è possibile inizializzare il sink dati e i dati di configurazione delle impostazioni di test, nonché registrare i gestori degli eventi che si desidera utilizzare, come indicato di seguito:
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); } }
Utilizzare il codice del gestore eventi seguente e il metodo Private per raccogliere il file di log generato durante il test:
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; }
Questi file sono allegati ai risultati del test. Se si crea un bug da questi risultati o quando si utilizza Test Runner, i file vengono allegati anche al bug.
Se si desidera utilizzare il proprio editor per raccogliere i dati da utilizzare nelle impostazioni di test, vedere Procedura: creare un editor personalizzato di dati per l'adattatore dati di diagnostica in uso.
Per raccogliere un file di log quando un test viene completato in base alla configurazione effettuata dall'utente nelle impostazioni di test, è necessario creare un file App.config e aggiungerlo alla soluzione. Questo file ha il formato seguente e deve contenere l'URI affinché l'adattatore dati di diagnostica lo identifichi. Sostituire i valori reali a "Company/ProductName/Version".
Nota
Se non è necessario configurare informazioni per l'adattatore dati di diagnostica, non è necessario creare un file di configurazione.
<?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>
Nota
L'elemento di configurazione predefinito può contenere qualsiasi dato necessario. Se l'utente non configura l'adattatore dati di diagnostica nelle impostazioni di test, a questo verranno passati i dati predefiniti al momento dell'esecuzione. Poiché il codice XML che si aggiunge alla sezione <DefaultConfigurations> non fa probabilmente parte dello schema dichiarato, è possibile ignorare gli eventuali errori XML generati.
Ci sono altri esempi di file di configurazione nel percorso seguente in base alla directory di installazione: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors.
Per ulteriori informazioni sulla configurazione delle impostazioni di test per utilizzare un ambiente quando si eseguono i test, vedere Creazione di impostazioni di test per test manuali o Creazione di impostazioni di test per test automatizzati come parte di un piano di test.
Per ulteriori informazioni sull'installazione del file di configurazione, vedere Procedura: installare un adattatore dati di diagnostica personalizzato.
Compilare la soluzione per creare l'assembly dell'adattatore dati di diagnostica.
Per informazioni sull'installazione dell'editor personalizzato, vedere Procedura: installare un adattatore dati di diagnostica personalizzato.
Per ulteriori informazioni sulla configurazione delle impostazioni di test per utilizzare un ambiente quando si eseguono i test, vedere Creazione di impostazioni di test per test manuali o Creazione di impostazioni di test per test automatizzati come parte di un piano di test.
Per selezionare l'adattatore dati di diagnostica, è necessario prima selezionare impostazioni di test esistenti o crearne nuove in Microsoft Test Manager o Microsoft Visual Studio 2010. L'adattatore verrà visualizzato nella scheda Dati e diagnostica delle impostazioni di test con il nome descrittivo assegnato alla classe.
Se i test vengono eseguiti da Microsoft Test Manager, è possibile assegnare queste impostazioni di test al piano di test prima di eseguire i test oppure utilizzare il comando Esegui con opzioni per assegnare impostazioni di test ed eseguire l'override delle impostazioni di test. Per ulteriori informazioni sulle impostazioni di test, vedere Configurazione di computer e raccolta di informazioni diagnostiche mediante impostazioni test.
Se i test sono in esecuzione da Microsoft Visual Studio 2010, è necessario impostare come attive queste impostazioni di test. Per ulteriori informazioni sulle impostazioni di test, vedere Creazione di impostazioni di test per l'esecuzione di test automatizzati da Visual Studio.
Eseguire i test utilizzando le impostazioni di test con l'adattatore dati di diagnostica selezionato.
Il file di dati specificato verrà allegato ai risultati del test.
Vedere anche
Attività
Creazione di impostazioni di test per l'esecuzione di test automatizzati da Visual Studio
Creazione di impostazioni di test per test automatizzati come parte di un piano di test
Creazione di impostazioni di test per test manuali
Riferimenti
DataCollectorConfigurationEditorAttribute
[T:Microsoft.VisualStudio.TestTools.Execution.DataCollectionSinkT:Microsoft.VisualStudio.TestTools.Execution.DataCollectorTypeUriAttribute]
DataCollectorFriendlyNameAttribute
DataCollectorEnabledByDefaultAttribute
Concetti
Configurazione di computer e raccolta di informazioni diagnostiche mediante impostazioni test
Procedura: creare un editor personalizzato di dati per l'adattatore dati di diagnostica in uso