Como: criar um adaptador de dados de diagnóstico
Para criar um adaptador de dados diagnóstico, você cria uma biblioteca de classes usando o Visual Studio, e então adiciona as APIs diagnóstico do adaptador de dados fornecidos pelo prêmio do Visual Studio para sua biblioteca de classes.Enviar quaisquer informações que você desejar como um fluxo ou um arquivo a DataCollectionSink fornecidas pela estrutura, ao manipular eventos que são gerados durante o ensaio.Fluxos ou arquivos enviados a DataCollectionSink são armazenados como arquivos anexos para os resultados do teste quando seu teste completa.Se você criar um bug de esses resultados de teste ou quando você usa Test Runner, os arquivos estão associados ao erro.
Você pode criar um adaptador de dados diagnóstico que afeta o computador onde seus testes são executados, ou um computador que é parte do ambiente que você está usando para executar o aplicativo do teste.Por exemplo, coletando arquivos em seu computador de teste onde teste são executados, ou coletando arquivos no computador que serve na função de servidor Web para seu aplicativo.
Você pode dar ao adaptador de dados diagnóstico um nome amigável que exibe quando você cria suas configurações de teste usando Test Manager ou usando Visual Studio.As configurações de teste permite que você defina que tornam ao executar a função adaptadores de dados diagnóstico específicos em seu ambiente quando você executa os testes.Você também pode configurar os adaptadores de dados diagnóstico quando você cria suas configurações de teste.Por exemplo, você pode criar um adaptador de dados diagnóstico que coleta logs personalizados do servidor Web.Quando você cria suas configurações de teste, você pode selecionar para executar este adaptador de dados diagnóstico no computador ou computadores que estão executando esta função servidor Web e você pode alterar a configuração para que suas configurações de teste coleta somente os logs os três últimas que foram criados.Para obter mais informações sobre configurações de teste, consulte Configuração de máquinas e coletar informações de diagnóstico usando as configurações de teste.
Os eventos são gerados quando você executar seus testes de modo que o adaptador de dados diagnóstico possa executar tarefas em esse ponto no teste.
Importante |
---|
Esses eventos podem ser gerados em threads diferentes, especialmente quando você tem testes que é executado em vários computadores.Portanto, você deve estar ciente de possíveis problemas de segmentação e não inadvertidamente danificar dados internos do adaptador personalizado.Certifique-se que o adaptador de dados diagnóstico tem segurança de segmentos. |
A seguir está uma lista parcial de eventos chave que você pode usar quando você cria o adaptador de dados diagnóstico.Para obter uma lista completa de eventos diagnóstico do adaptador de dados, consulte a classe abstrata de DataCollectionEvents .
Evento |
Descrição |
---|---|
Início do seu ensaio |
|
Final do seu ensaio |
|
Início de cada teste em ensaio |
|
O final de cada teste em ensaio |
|
Início de cada etapa de teste em um teste |
|
O final de cada etapa de teste em um teste |
Observação |
---|
Quando um teste manual terminar, não mais evento da coleção de dados é enviado ao adaptador de dados diagnóstico.Quando um teste é executado novamente, terá um novo identificador de situação de teste.Se um usuário redefina um teste durante um teste (que gera o evento de TestCaseReset ), ou alterar um resultado da etapa de teste, nenhum evento da coleção de dados é enviado ao adaptador de dados diagnóstico, mas o identificador da situação de teste permanece o mesmo.Para determinar se uma situação de teste foi redefinido, você deve controlar o identificador da situação de teste em seu adaptador de dados diagnóstico. |
Use o seguinte procedimento para criar o adaptador de dados diagnóstico que coleta um arquivo de dados que é baseado nas informações que você configura quando você cria suas configurações de teste.
Para um projeto diagnóstico do adaptador de dados de exemplo completo, incluindo um editor personalizado de configuração, consulte Projeto de amostra para a criação de um adaptador de dados de diagnóstico.
Criando e instalando um adaptador de dados diagnóstico
Para criar e instalar um adaptador de dados diagnóstico
Crie uma nova biblioteca de classes.
Em o menu de Arquivo , escolha Novo, aponte para e em seguida Novo Projeto.
De tipos de projeto, selecione a linguagem para usar.
De Modelos instalados do Visual Studio, Biblioteca de Classesselecione.
Digite um nome para o adaptador de dados diagnóstico.
Escolha OK.
Adicione o assembly Microsoft.VisualStudio.QualityTools.ExecutionCommon.
Em o solution Explorer, clique com o botão direito do mouse Referências e escolha o comando de Adicionar Referência .
Escolha .NET e localize Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll.
Escolha OK.
Adicione o assembly Microsoft.VisualStudio.QualityTools.Common.
Em o solution Explorer, clique com o botão direito do mouse Referências e selecione o comando de Adicionar Referência .
Escolha /.NET, localize Microsoft.VisualStudio.QualityTools.Common.dll.
Escolha OK.
Adicione as seguintes declarações de using ao seu arquivo classe:
using Microsoft.VisualStudio.TestTools.Common; using Microsoft.VisualStudio.TestTools.Execution; using System.Linq; using System.Text; using System.Xml; using System;
Adicione DataCollectorTypeUriAttribute a classe para que o adaptador de dados diagnóstico identifique-o como um adaptador de dados diagnóstico, substituindo Empresa, Produto, e Versão com as informações apropriadas para o adaptador de dados diagnóstico:
[DataCollectorTypeUri("datacollector://Company/Product/Version")]
Adicione o atributo de DataCollectorFriendlyNameAttribute a classe, substituindo os parâmetros com as informações apropriadas para o adaptador de dados diagnóstico:
[DataCollectorFriendlyName("Collect Log Files", false)]
Este nome amigável é exibido na atividade de configurações de teste.
Observação Você também pode adicionar DataCollectorConfigurationEditorAttribute para especificar Type do editor de configuração personalizada para este adaptador de dados, e opcionalmente para especificar o arquivo de ajuda para usar o editor.
Você também pode aplicar DataCollectorEnabledByDefaultAttribute para especificar que sempre deve ser ativado.
Sua classe diagnóstico do adaptador de dados deve herdar da classe de DataCollector como segue:
public class MyDiagnosticDataAdapter : DataCollector
Adicione as variáveis locais como segue:
private DataCollectionEvents dataEvents; private DataCollectionLogger dataLogger; private DataCollectionSink dataSink; private XmlElement configurationSettings;
Adicione o método de Initialize e um método de Dispose .Em o método de Initialize , você inicializa o colector de dados, todos os dados de configuração de configurações de teste, e registra manipuladores de eventos que você deseja usar como segue:
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); } }
Use o seguinte código manipulador de eventos e o método particular para coletar o arquivo de log gerado durante o teste:
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; }
Esses arquivos estão conectados aos resultados de teste.Se você criar um bug de esses resultados de teste ou quando você usa Test Runner, os arquivos são anexados ao erro.
Se você desejar usar seu próprio editor para coletar dados para usar nas configurações de teste, consulte Como: criar um Editor personalizado para os dados para o seu adaptador de dados de diagnóstico.
Para coletar um arquivo de log quando um teste concluir baseado em que o usuário configurado nas configurações de teste, você deve criar um arquivo de App.config e o adicionar à solução.Este arquivo tem o seguinte formato e deve conter o URI para que o adaptador de dados diagnóstico identifique-o.Substitua os valores reais da empresa “/ProductName/versão”.
Observação Se você não precisará configurar quaisquer informações para o adaptador de dados diagnóstico, então você não precisará criar um arquivo de configuração.
<?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>
Observação O elemento de configuração padrão pode conter todos os dados que você precisar.Se o usuário não configurar o adaptador de dados diagnóstico nas configurações de teste, os dados estarão padrão passados para o adaptador de dados diagnóstico quando são executados.Como o XML você adiciona à seção <DefaultConfigurations> não é provável de ser parte do esquema declarado, você pode ignorar os erros que XML gerar.
Existem outros exemplos dos arquivos de configuração no seguinte caminho baseado no diretório de instalação: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors.
Para obter mais informações sobre como configurar suas configurações de teste para usar um ambiente quando você executar seus testes, consulte Especificando as configurações de teste no Microsoft Test Manager ou Criar configurações de teste para testes de sistema automatizados usando o Microsoft Test Manager.
Para obter mais informações sobre como instalar o arquivo de configuração, consulte Como: instalar um adaptador de dados de diagnóstico personalizado
Construa sua solução para criar o assembly diagnóstico do adaptador de dados.
Para obter informações sobre como instalar o editor personalizado, consulte Como: instalar um adaptador de dados de diagnóstico personalizado.
Para obter mais informações sobre como configurar suas configurações de teste para usar um ambiente quando você executar seus testes, consulte Especificando as configurações de teste no Microsoft Test Manager ou Criar configurações de teste para testes de sistema automatizados usando o Microsoft Test Manager.
Selecione o adaptador de dados diagnóstico, primeiro você deve selecionar as configurações existentes de um teste ou criar um novo de Microsoft Test Manager ou Visual Studio.O adaptador é exibido na guia de dados e diagnósticos das configurações de teste com o nome amigável que você atribuiu à classe.
Se você estiver executando seu teste de Microsoft Test Manager, você pode atribuir essas configurações de teste para o plano de teste antes de executar seus testes, ou use o comando de execução com opções atribuir configurações de teste e configurações de teste de substituição.Para obter mais informações sobre configurações de teste, consulte Configuração de máquinas e coletar informações de diagnóstico usando as configurações de teste.
Se você estiver executando seu teste do Visual Studio, você deve definir essas configurações de teste para ser ativo.Para obter mais informações sobre configurações de teste, consulte Especificando configurações de teste do Visual Studio.
Executar seus testes usando as configurações de teste com o adaptador de dados diagnóstico selecionado.
O arquivo de dados que você especificou é anexado a seus resultados de teste.
Consulte também
Tarefas
Criar configurações de teste para testes de sistema automatizados usando o Microsoft Test Manager
Referência
DataCollectorConfigurationEditorAttribute
DataCollectorFriendlyNameAttribute
DataCollectorEnabledByDefaultAttribute
Conceitos
Configuração de máquinas e coletar informações de diagnóstico usando as configurações de teste
Como: criar um Editor personalizado para os dados para o seu adaptador de dados de diagnóstico
Outros recursos
Especificando configurações de teste do Visual Studio
Especificando as configurações de teste no Microsoft Test Manager