Como criar um editor personalizado para dados do adaptador de dados de diagnóstico
Publicado: abril de 2016
Ao criar um adaptador de dados de diagnóstico, você talvez queira permitir que o usuário configure dados específicos quando o adaptador de dados de diagnóstico personalizado é selecionado para suas configurações de teste. Por exemplo, você pode selecionar os dados da configuração que especificam quais chaves do Registro extrair, que nível de carga de rede simular ou em que diretório encontrar arquivos temporários ou de trabalho a serem anexados.
Você deve usar um arquivo de configuração para definir valores iniciais para o adaptador de dados de diagnóstico. Você pode fornecer um editor personalizado para permitir que o usuário modifique os dados de configuração.
Para criar seu próprio editor, você criará um controle de usuário que implementa IDataCollectorConfigurationEditor.
O adaptador de dados de diagnóstico pode usar um DataCollectorConfigurationEditorAttribute para especificar a classe do editor a ser usada na edição das configurações de dados de diagnóstico.
Você também especifica os dados de configuração padrão que deseja usar. Consulte Projeto de amostra para criar um adaptador de dados de diagnóstico para obter um exemplo de configuração padrão.
Use o seguinte procedimento para criar um editor personalizado a fim de atualizar dados das configurações de teste quando o adaptador de diagnóstico de dados personalizado for usado.
Dica
Para criar um editor personalizado, você deve primeiro criar o adaptador de dados de diagnóstico que tem DataCollectorConfigurationEditorAttribute aplicado à classe.Você pode usar a propriedade opcional HelpUri nesse atributo para especificar a fonte de conteúdo da ajuda para seu editor.Para obter mais informações sobre como criar seu próprio adaptador de dados de diagnóstico, consulte Como criar um adaptador de dados de diagnóstico.
Para obter um projeto completo do adaptador de dados de diagnóstico de exemplo, incluindo um editor de configuração personalizado, consulte Projeto de amostra para criar um adaptador de dados de diagnóstico.
Criando um editor personalizado para seu adaptador de dados de diagnóstico
Para criar um editor personalizado para o adaptador de dados de diagnóstico
Crie um controle de usuário no projeto para o adaptador de diagnóstico de dados:
Clique com o botão direito do mouse no projeto de código que contém sua classe do adaptador de dados de diagnóstico, aponte para Adicionar e para Controle do Usuário.
Para este exemplo, adicione um rótulo ao formulário com este texto: Nome do Arquivo de Dados e uma caixa de texto chamada FileTextBox que permitirá que o usuário insira os dados necessários.
Dica
Apenas os controles de usuário do Windows Forms são compatíveis no momento.
Adicione essas linhas à seção de declaração:
using System.Xml; using Microsoft.VisualStudio.TestTools.Common; using Microsoft.VisualStudio.TestTools.Execution;
Crie este controle de usuário em um editor personalizado.
Clique com o botão direito do mouse no controle de usuário em seu projeto de código e aponte para Exibir código.
Defina a classe para implementar a interface IDataCollectorConfigurationEditor do editor, da seguinte forma:
public partial class MyDataConfigEditor : UserControl, IDataCollectorConfigurationEditor
Clique com o botão direito do mouse em IDataCollectorConfigurationEditor no código e selecione o comando Implementar Interface. Os métodos que você deve implementar para essa interface são adicionados à classe.
Adicione DataCollectorConfigurationEditorAttribute ao controle de usuário para que o editor identifique-o como um editor do adaptador de dados de diagnóstico, substituindo Empresa, Produto e Versão pelas informações apropriadas ao adaptador de dados de diagnóstico:
[DataCollectorConfigurationEditorTypeUri( "configurationeditor://MyCompany/MyConfigEditor/1.0")]
Adicione duas variáveis particulares da seguinte forma:
private DataCollectorSettings collectorSettings; private IServiceProvider ServiceProvider { get; set; }
Adicione código para inicializar seu editor para o adaptador de dados de diagnóstico. Você pode adicionar valores padrão para os campos no controle de usuário usando os dados que estão na variável de configurações. Esses são os dados que estão no elemento <DefaultConfiguration> do arquivo de configuração XML para o adaptador.
public void Initialize( IServiceProvider svcProvider, DataCollectorSettings settings) { ServiceProvider = svcProvider; collectorSettings = settings; // Display the default file name as listed in the settings file. this.SuspendLayout(); this.FileTextBox.Text = getText(collectorSettings.Configuration); this.ResumeLayout(); }
Adicione código para salvar os dados dos controles no editor novamente no formato XML exigido pela API do adaptador de dados de diagnóstico da seguinte forma:
public DataCollectorSettings SaveData() { collectorSettings.Configuration.InnerXml = String.Format( @"<MyCollectorName http://MyCompany/schemas/MyDiagnosticDataCollector/1.0""> <File FullPath=""{0}"" /> </MyCollectorName>", FileTextBox.Text); return collectorSettings; }
Se for importante para você, adicione código para verificar se os dados estão corretos no método VerifyData ou você poderá fazer o método retornar true.
public bool VerifyData() { // Not currently verifying data return true; }
(Opcional) Você pode adicionar código para redefinir os dados das configurações iniciais que são fornecidas no arquivo de configuração XML no método de ResetToAgentDefaults() que usa o método particular getText().
// Reset to default value from XML configuration // using a custom getText() method public void ResetToAgentDefaults() { this.FileTextBox.Text = getText(collectorSettings.DefaultConfiguration); } // Local method to read the configuration settings private string getText(XmlElement element) { // Setup namespace manager with our namespace XmlNamespaceManager nsmgr = new XmlNamespaceManager( element.OwnerDocument.NameTable); // Find all the "File" elements under our configuration XmlNodeList files = element.SelectNodes("//ns:MyCollectorName/ns:File", nsmgr); string result = String.Empty; if (files.Count > 0) { XmlAttribute pathAttribute = files[0].Attributes["FullPath"]; if (pathAttribute != null && !String.IsNullOrEmpty(pathAttribute.Value)) { result = pathAttribute.Value; } } return result; }
Compile sua solução. Copie o assembly do adaptador de diagnóstico de dados e o arquivo de configuração XML (<diagnostic data adapter name>.dll.config) para o local a seguir com base no diretório de instalação: Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\DataCollectors.
Dica
Embora o editor de configuração possa estar em um projeto e um assembly que é diferente do adaptador de dados de diagnóstico, eles também podem estar no mesmo assembly.
Para usar o adaptador de dados de diagnóstico em testes, você deve selecionar na lista de configurações de teste existente ou criar um novo do Microsoft Test Manager ou do Visual Studio e selecionar o adaptador de dados de diagnóstico.
O adaptador é exibido na guia Dados e Diagnósticos das configurações de teste com o nome amigável que você atribuiu à classe.
Para configurar o adaptador de dados de diagnóstico para suas configurações de teste, escolha Configurar próximo ao nome do adaptador.
O editor personalizado é exibido agora.
Edite os campos em seu editor personalizado conforme necessário e escolha Salvar.
Se estiver executando seus testes do Microsoft Test Manager, você poderá atribuir essas configurações de teste ao seu plano de teste antes de executar seus testes ou usar o comando Executar com Opções para atribuir configurações de teste e substituir configurações de teste. Para obter mais informações sobre configurações de teste, consulte Configurando máquinas e coletando informações de diagnóstico usando configurações de teste.
Para que seja possível usar o novo editor de configuração com um adaptador de dados de diagnóstico, você deve aplicar DataCollectorConfigurationEditorAttribute a cada classe do adaptador de dados de diagnóstico que você deseja usar o editor e recompilá-las e reinstalá-las no computador cliente. Para obter mais informações sobre como instalar adaptadores de dados de diagnóstico e editores de configuração, consulte Como instalar um adaptador de dados de diagnóstico personalizado.
Execute seus testes usando as configurações de teste com o adaptador de dados de diagnóstico selecionado.
O arquivo de dados que você especificou no editor está anexado aos resultados do teste.
Para obter mais informações sobre como definir suas configurações de teste para usar um ambiente quando você executar seus testes, consulte Coletar mais dados de diagnóstico em testes manuais ou Criar configurações de teste para testes de sistema automatizados usando o Microsoft Test Manager.
Consulte também
IDataCollectorConfigurationEditor
DataCollectorConfigurationEditorAttribute
DataCollectorConfigurationEditorAttribute
Criando um adaptador de dados de diagnóstico para coletar dados personalizados ou afetar uma máquina de teste
Configurando máquinas e coletando informações de diagnóstico usando configurações de teste
Projeto de amostra para criar um adaptador de dados de diagnóstico