Compartilhar via


Walkthrough: Creating, Editing and Maintaining a Coded UI Test

Nessa explicação passo a passo, você criará um simples aplicativo do Windows Presentation Foundation (WPF) demonstrar como criar, editar, e manter um teste codificado de interface do usuário.A explicação passo a passo fornece soluções para corrigir os testes que foram quebrados por vários problemas de tempo e controlam refatoração.

Pré-requisitos

Para essa explicação passo a passo você precisará:

  • Visual Studio Ultimate ou Visual Studio Premium.

Crie um aplicativo WPF simples

  1. No menu File, aponte para New e clique Project.

    A caixa de diálogo Novo Projeto é exibida.

  2. No painel de Instalado , expanda Visual C#, selecione Janelas.

  3. Anterior do painel médio, verifique que a lista suspensa do framework de destino está definida para o .NET Framework 4.5.

  4. No painel médio, selecione o modelo de Aplicativo WPF .

  5. Na caixa de texto Nome , digite SimpleWPFApp.

  6. Escolha uma pasta onde você salvar o projeto.Na caixa de texto Local , digite o nome da pasta.

  7. Escolha OK.

    O WPF designer para Visual Studio abre e exibe MainWindow do projeto.

  8. Se a caixa de ferramentas não está atualmente aberto, abra-o.Escolha o menu de Modo de Visualização , escolha Caixa de Ferramentas.

  9. Na seção de Todos os Controles do WPF , arraste Botão, CheckBox e o controle de Barra de Progresso em MainWindow na superfície de design.

  10. Selecione o controle botão.Na janela propriedades, altere o valor para a propriedade de Conteúdo de Botão para iniciar.

  11. Selecione o controle ProgressBar.Na janela propriedades, altere o valor para a propriedade de Máximo de 100 como 1000.

  12. Selecione o controle caixa de seleção.Na janela propriedades, desmarque a propriedade de IsEnabled .

    Aplicativo WPF simples

  13. Clique duas vezes no controle button para adicionar um evento escolha.

    O MainWindow.xmal.cs é exibido no editor de códigos com o cursor no novo evento de button1_Choose.

  14. Na parte superior da classe MainWindow, adicione um representante.O representante será usado para a barra de progresso.Para adicionar o representante, adicione o seguinte código:

            private delegate void ProgressBarDelegate(
            System.Windows.DependencyProperty dp, Object value);
    
  15. No método de button1_Choose, adicione o seguinte código:

                double progress = 0;
    
                ProgressBarDelegate updatePbDelegate =
            new ProgressBarDelegate(progressBar1.SetValue);
    
                do
                {
                    progress ++;
    
                    Dispatcher.Invoke(updatePbDelegate,
                        System.Windows.Threading.DispatcherPriority.Background,
                        new object[] { ProgressBar.ValueProperty, progress });
                    progressBar1.Value = progress;
                }
                while (progressBar1.Value != progressBar1.Maximum);
    
                checkBox1.IsEnabled = true;
    

Verifique as sequências de aplicativo WPF corretamente

  1. No menu de Depurar , em Iniciar Depuração selecione ou aperte F5.

  2. Escolha Iniciar.

    Em alguns segundos, a barra de progresso deve ser 100% completo.O controle de caixa de seleção está ativado.

  3. Próximo SimpleWPFApp.

Criar e executar um teste codificado de interface de usuário para SimpleWPFApp

  1. No solution Explorer, clique com o botão direito do mouse na solução, escolha Adicionar e selecione Novo Projeto.

    A caixa de diálogo Adicionar Novo Projeto é exibida.

  2. No painel de Instalado , expanda Visual C#, selecione Testar.

  3. No painel médio, selecione o modelo de Projeto de teste de Interface de Usuário codificado .

  4. Escolha OK.

    No solution Explorer, o novo projeto codificado de teste de interface de usuário CodedUITestProject1 chamado é adicionado à sua solução.

    A caixa de diálogo Gerar Código para Teste de IU Codificado aparece.

  5. Selecione a opção para Registrar ações, edite o mapa da interface do usuário ou adicionar asserções e escolha OK.

    UIMap – construtor codificado de teste de interface de usuário aparece, e a janela do Visual Studio é minimizada.

    Para obter mais informações sobre as opções na caixa de diálogo, consulte Criando teste codificados de interface de usuário.

  6. Localize e executar o aplicativo de SimpleWPFApp que você criou anteriormente.Por padrão, o aplicativo será localizado em C:\Users\<username>\ documents \ Visual Studio 2012 \ projects \ \ SimpleWPFApp SimpleWPFApp \ bin \ debug \ SimpleWPFApp.exe

  7. Crie um atalho da área de trabalho para o aplicativo de SimpleWPFApp.Clique com o botão direito do mouse SimpleWPFApp.exe e escolha Copiar.Na área de trabalho, clique com o botão direito do mouse e escolha Colar atalho.

    DicaDica

    Um atalho para o aplicativo facilita adicionar ou alterar teste codificados de interface de usuário para seu aplicativo porque permite que você para iniciar rapidamente o aplicativo.Você não tem que navegar até ela.Você precisará executar novamente o aplicativo nessa explicação passo a passo.

  8. Escolha Iniciar Gravação no UIMap – construtor codificado de teste de interface do usuário.Em alguns segundos, o construtor codificado de teste de interface do usuário estará pronto.

  9. Execução SimpleWPFApp.exe usando o atalho da área de trabalho.

  10. No SimpleWPFApp, escolha Iniciar.

    Em alguns segundos, a barra de progresso deve ser 100% completo.O controle de caixa de seleção está ativado.

  11. Selecione a caixa para o controle de caixa de seleção.

  12. Feche o aplicativo de SimpleWPFApp.

  13. No UIMap - o construtor codificado de teste de interface do usuário, escolha Gerar código.

  14. O nome do método digite SimpleAppTest e escolha Adicionar e gere.Em alguns segundos, o teste codificado de interface do usuário aparece e é adicionado à solução.

  15. Feche o UIMap – construtor codificado de teste de interface do usuário.

    O arquivo de CodedUITest1.cs aparece no editor de códigos.

Executar o teste codificado de interface de usuário

  • No arquivo de CodedUITest1.cs, localize o método de CodedUITestMethod , clique com o botão direito do mouse e selecione Executar Testes.

    Quando os ensaios codificados de interface do usuário, o SimpleWPFApp são visíveis.Resulta as etapas que você fez no procedimento anterior.No entanto, quando o teste tenta selecione a caixa de seleção para o controle de caixa de seleção, a janela de resultados de teste mostra a que o teste falha.Isso ocorre porque tenta de teste para selecione a caixa de seleção mas não são cientes que o controle de caixa de seleção está desativado até que a barra de progresso é 100% completo.Você pode corrigir isso e problemas semelhantes usando vários métodos de UITestControl.WaitForControlXXX() que estão disponíveis para testar codificado de interface do usuário.O procedimento a seguir demonstrará usando o método WaitForControlEnabled() para corrigir o problema que causou este teste falhar.Para obter mais informações, consulte Making Coded UI Tests Wait For Specific Events During Playback.

Editar e execute novamente o teste codificado de interface de usuário

  1. Na janela de resultados de teste, clique com o botão direito do mouse no teste falha e selecione Exibir Detalhes de Resultados de Testes.

    O CodedUITestMethod1 [] resultados é exibido.

  2. Na seção de Rastreamento de Pilha de Erro , escolha o primeiro link ao lado de TestProject1.UIMap.SimpleAppTest ()().

    O arquivo de UIMap.Designer.cs abre com o ponto de erro no código realçado:

    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  3. Para corrigir esse problema, você pode fazer o teste codificado de interface do usuário esperar o controle de caixa de seleção para ser ativado antes de continuar sobre a essa linha usando o método WaitForControlEnabled() .

    Observação de cuidadoCuidado

    Não modifique o arquivo de UIMap.Designer.cs.Todas as alterações de código que você fez no arquivo de UIMapDesigner.cs serão substituídas cada vez que você gerar código usando o UIMap - construtor codificado de teste de interface do usuário.Se você tem que alterar um método identificado, você deve copie o arquivo de UIMap.cs e renomeá-lo.O arquivo de UIMap.cs pode ser usado para substituir métodos e propriedades em UIMapDesigner.cs arquivo.Você deve remover a referência para o método original no arquivo codificado de UITest.cs e substitua com o nome do método renomeado.

  4. No solution Explorer, localize UIMap.uitest em seu projeto codificado de teste de interface do usuário.

  5. Abra o menu de atalho para UIMap.uitest e escolha Abrir.

    O teste codificado de interface do usuário é exibido no editor codificado de teste de interface do usuário.Agora você pode exibir e editar o teste codificado de interface do usuário.

  6. No painel de Ação de interface de usuário , selecione o método de teste que você deseja mover para o arquivo de UIMap.cs ou de UIMap.vb para facilitar a funcionalidade de código personalizado que não será substituída quando o código de teste é recompilado.

  7. Escolha o botão de Mova o código na barra de ferramentas codificado do editor de teste de interface do usuário.

  8. Uma caixa de diálogo Microsoft Visual Studio é exibida.Adverte-o que o método será movida do arquivo de UIMap.uitest para o arquivo de UIMap.cs e que você não será capaz de editar o método usando o editor codificado de teste de interface do usuário.Escolha Sim.

    O método de teste é removido do arquivo de UIMap.uitest e não exibido no painel ações de interface do usuário.Para editar o arquivo movido de teste, abra o arquivo de UIMap.cs de soluções.

  9. Na barra de ferramentas Visual Studio , escolha Salvar.

    Atualizações para o método de teste são salvas no arquivo de UIMap.Designer.

    Observação de cuidadoCuidado

    Uma vez que você mover o método, você pode não editá-lo usando o editor codificado de teste de interface do usuário.Você deve adicionar o código personalizado e mantê-lo usando o editor de códigos.

  10. Renomeie o método de SimpleAppTest() a ModifiedSimpleAppTest()

  11. Adicione a seguinte declaração de usar ao arquivo:

    using Microsoft.VisualStudio.TestTools.UITesting.WpfControls;
    
  12. Adicione o seguinte método de WaitForControlEnabled() antes que ofende da linha de código identificado anteriormente:

    uICheckBoxCheckBox.WaitForControlEnabled();
    
    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  13. No arquivo de CodedUITest1.cs, localize o método de CodedUITestMethod e comente out renomear uma referência para o método original de SimpleAppTest () e substituia com o novo ModifiedSimpleAppTest (:)

    [TestMethod]
            public void CodedUITestMethod1()
            {
                // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
                // For more information on generated code, see https://go.microsoft.com/fwlink/?LinkId=179463
                //this.UIMap.SimpleAppTest();
                this.UIMap.ModifiedSimpleAppTest();
            }
    
  14. No menu Build, escolha Build Solution.

  15. Clique com o botão direito do mouse no método de CodedUITestMethod e selecione Executar Testes.

  16. Esta vez o teste codificado de interface do usuário concluída com sucesso todas as etapas no teste e Passou é exibido na janela de resultados de teste.

Refactor um controle em SimpleWPFApp

  1. No arquivo de MainWindow.xaml, no designer, selecione o controle botão.

  2. Na parte superior da janela propriedades, selecione o valor botão1 ao lado de Botão e altere o valor para o buttonA.

  3. No menu Build, escolha Build Solution.

  4. No menu de Testar , selecione Janelas e clique em Modo de Teste.

  5. Em CodedUITestMethod1 , selecione sob a coluna de Nome do Teste e clique em Executar seleção na barra de ferramentas.

    O teste falha porque o teste codificado de interface do usuário não pode permanecer o controle de botão que foi originalmente mapeado no UIMap como button1.Refatoração pode afetar teste codificados de interface de usuário dessa maneira.

  6. Na janela de resultados de teste, clique com o botão direito do mouse no teste falha e selecione Exibir Detalhes de Resultados de Testes.

    O CodedUITestMethod1 resultados [] aparece.

  7. Na seção de Rastreamento de Pilha de Erro , escolha o primeiro link ao lado de TestProject1.UIMpa.SimpleAppTest ()().

    O arquivo de UIMap.Designer.cs abre.O ponto de erro é realçado no código:

    // Choose 'Start' button
    Mouse.Click(uIStartButton, new Point(27, 10));
    

    Observe que a linha de código anteriormente neste procedimento está usando UiStartButton, que é o nome de UIMap antes de estado refactored.

    Para corrigir o problema, você pode adicionar o controle refactored ao UIMap usando o construtor codificado de teste de interface do usuário.Você pode atualizar o código de teste para usar o código, como demonstrado no procedimento a seguir.

Controle e edição de Refactored de mapa e executado novamente o teste codificado de interface de usuário

  1. No arquivo de CodedUITest1.cs, no método de CodedUITestMethod1 () (), clique com o botão direito do mouse, selecione Gerar Código para Teste de IU Codificado e escolha Use o construtor codificado de teste de interface de usuário.

    O UIMap – o construtor codificado de teste de interface do usuário aparece.

  2. Usando o atalho da área de trabalho você criou anteriormente, execute o aplicativo de SimpleWPFApp que você criou anteriormente.

  3. No UIMap – o construtor codificado de teste de interface do usuário, arrastar a ferramenta de crosshair para o botão de Iniciar no SimpleWPFApp.

    O botão de Iniciar é incluído em uma caixa azul e o construtor codificado de teste de interface de usuário tem alguns segundos para processar os dados para o controle selecionado e exibe as propriedades dos controles.Observe que AutomationUId é chamado buttonA.

  4. Nas propriedades para o controle, escolha a seta no canto superior esquerdo para expandir o mapa de controle da interface do usuário.Observe que UIStartButton1 está selecionado.

  5. Na barra de ferramentas, escolha Adicionar o controle ao mapa de controle de interface de usuário.

    O status na parte inferior da janela verifica a ação exibindo O controle selecionado foi adicionado ao mapa de controle de interface de usuário.

  6. No UIMap – o construtor codificado de teste de interface do usuário, escolha Gerar código.

    O construtor codificado de teste de interface de usuário – gerar código parece com uma nota que indica nenhum novo método é necessário e que o código será gerado apenas para as alterações no mapa de controle da interface do usuário.

  7. Escolha Gerar.

  8. Feche SimpleWPFApp.exe.

  9. Feche UIMap – construtor codificado de teste de interface do usuário.

    O UIMap – o construtor codificado de teste de interface de usuário tem alguns segundos para processar as alterações do mapa de controle da interface do usuário.

  10. No solution Explorer, abra o arquivo de UIMap.Designer.cs.

  11. No arquivo de UIMap.Designer.cs, abaixo do construtor da classe gerada UIMainWindowde código, expandir a região de Propriedades .Observe que a propriedade de public WpfButton UIStartButton1 foi adicionada.

  12. Na propriedade UIStartButton1, expanda os critérios da região de pesquisa.Observe que SearchProperties é definido como "buttonA":

    public WpfButton UIStartButton1
            {
                get
                {
                    if ((this.mUIStartButton1 == null))
                    {
                        this.mUIStartButton1 = new WpfButton(this);
                        #region Search Criteria
                        this.mUIStartButton1.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
                        this.mUIStartButton1.WindowTitles.Add("MainWindow");
                        #endregion
                    }
                    return this.mUIStartButton1;
                }
            }
    

    Agora você pode alterar o teste codificado de interface de usuário para usar o controle recentemente mapeado.Como indicado no procedimento anterior se você deseja substituir quaisquer métodos ou propriedades no teste codificado de interface do usuário, você deve fazê-lo no arquivo de UIMap.cs.

  13. No arquivo de UIMap.cs, adicione um construtor e especificar a propriedade de SearchProperties de propriedade de UIStartButton para usar a propriedade de AutomationID com um valor de "buttonA":

    public UIMap()
            {
                this.UIMainWindowWindow.UIStartButton.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
            }
    
  14. No menu Build, escolha Build Solution.

  15. No modo de teste, selecione CodedUITestMethod1 na coluna de Nome do Teste , na barra de ferramentas, clique em Executar seleção.

    Desta vez, o teste codificado de interface do usuário concluída com sucesso todas as etapas em teste.Nos resultados do teste a janela, você verá um status de Passou.

Recursos externos

Ff977233.collapse_all(pt-br,VS.110).gifVídeos

link para vídeo

link para vídeo

link para vídeo

Ff977233.collapse_all(pt-br,VS.110).gifMãos em laboratório

Laboratório virtual do MSDN: Introdução ao criar teste codificados de interface do usuário com Visual Studio 2010

Ff977233.collapse_all(pt-br,VS.110).gifFAQ

Teste codificados Perguntas Frequentes de interface de usuário - 1

Teste codificados Perguntas Frequentes -2 de interface de usuário

Ff977233.collapse_all(pt-br,VS.110).gifFórum

Teste de automação do Visual Studio interface do usuário (inclui CodedUI)

Consulte também

Conceitos

Verificando o código usando testes de interface do usuário codificada

Supported Configurations and Platforms for Coded UI Tests and Action Recordings

Outros recursos

Introdução ao WPF Designer

Editing Coded UI Tests Using the Coded UI Test Editor