How to: Create a Data-Driven Coded UI Test
Você pode criar um teste codificado de interface do usuário que testa se a interface do usuário (UI) para um aplicativo funciona corretamente.O teste codificado de interface do usuário executa ações nos controles de interface de usuário para um aplicativo e verifique se os controles especificados exibe os valores corretos.Para obter mais informações sobre como criar um teste codificado de interface do usuário, consulte Criando teste codificados de interface de usuário.
Requisitos
- Visual Studio Ultimate, Visual Studio Premium
Depois que você cria seu teste codificado de interface de usuário com os dados especificados, você pode desejar executar várias vezes seu teste codificado de interface do usuário com conjuntos de dados diferentes para testar condições diferentes.Para fazer isso você pode adicionar valores de parâmetro de uma fonte de dados para criar um teste codificado orientado a interface do usuário.Cada linha em uma fonte de dados é uma iteração de teste codificado de interface do usuário.O resultado será total de teste com base no resultado para todas as iterações.Por exemplo, se uma iteração de teste falhar, o resultado total de análise falhar.
Quando você gera métodos ou asserções para o seu teste codificado de interface do usuário gravando o, todas as constantes referenciadas em métodos são gravados parametrizadas de classes do parâmetro.Por exemplo, se você adicionar um método chamado AddTwoNumbers, interface do usuário codificado que testa a estrutura gera outra classe denominada AddTwoNumbersParams e adiciona um campo a esta classe para cada valor constante que você usou para registrar o método.Se você gera um método chamado AssertForAddde declaração, a estrutura gera uma classe denominada AssertforAddExpectedValues para os valores esperados.Essas classes são geradas automaticamente e usadas nas seguintes etapas.
Todas as alterações ao seu teste para habilitar para usar uma fonte de dados para parâmetros serão feitas no arquivo de código-fonte do seu teste (IE..CodedUITest1.cs).Você não pode alterar o código no arquivo de UIMap.Designer.cs .
Depois de criar um teste codificado de interface do usuário, você pode usar as etapas no procedimento a seguir para adicionar seus fonte de dados e parâmetros para o seu teste.Este exemplo pressupõe que você tem esses elementos de código em sua solução:
Uma classe codificado de teste de interface do usuário CodedUITest1.chamado
Um método chamado CodedUITestMethod1().de teste
O método de teste é para um aplicativo da calculadora simples que adiciona dois números e verifica que foram adicionados juntos corretamente para esse teste a passagem.
A fonte de dados é um arquivo de .csv que contém os seguintes dados:
Input1 |
Input2 |
ExpectedResult |
---|---|---|
3 |
4 |
7 |
5 |
6 |
11 |
1200 |
24000 |
25200 |
Crie o arquivo e adicioná-la ao seu projeto codificado de teste de interface do usuário.
Crie um teste codificado orientado a interface do usuário
Para criar um teste codificado orientado a interface do usuário
Em Gerenciador de Soluções, abra a solução que contém o projeto codificado de teste de interface do usuário e abra o teste codificado de interface de usuário para edição.
Insira o atributo da fonte de dados diretamente no código, na linha imediatamente acima do método de teste.Você pode usar as cadeias de caracteres da fonte de dados de exemplo na tabela abaixo copiando ao seu código e fazer personalizações necessárias.
Tipo de fonte de data
Atributo da fonte de dados
CSV
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]
O excel
DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=|DataDirectory|\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]
Situação de teste no Team Foundation Server
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://vlm13261329:8080/tfs/DefaultCollection;Agile", "30", DataAccessMethod.Sequential), TestMethod]
XML
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Iterations", DataAccessMethod.Sequential), DeploymentItem("data.xml"), TestMethod]
O SQL express
[DataSource("System.Data.SqlClient", "Data Source=.\\sqlexpress;Initial Catalog=tempdb;Integrated Security=True", "Data", DataAccessMethod.Sequential), TestMethod]
A fonte de dados está disponível para que você as use nesse método de teste.Você usa TestContext.DataRow para acessar a linha atual de dados da fonte de dados.Você pode acessar cada coluna usando a seguinte sintaxe:
string paramVal = TestContext.DataRow["Input1"]
Em Gerenciador de Soluções, abra o arquivo de CodedUITest1.cs .Faça as seguintes alterações para o método de CodedUITestMethod1() :
Adicione as duas linhas de código antes da chamada ao método de AddTwoNumbers para fornecer valores para os números para adicionar.
this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString();
Adicione a seguinte linha de código antes da chamada ao método de AssertforAdd para fornecer o valor para o método afirmar.
this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString();
Isso é como o método codificado de teste de interface de usuário deve parecer com parâmetros e a fonte de dados adicionados a ele:
[DeploymentItem("DataDriven.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\DataDriven.csv", "DataDriven#csv", DataAccessMethod.Sequential), 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. this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString(); this.UIMap.AddTwoNumbers(); this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString(); this.UIMap.AssertforAdd(); }
Salve as alterações no arquivo de código-fonte de CodedUITest1.cs .
Para executar o teste codificado de interface do usuário, clique com o botão direito do mouse no teste codificado de interface do usuário no editor de códigos e escolha Executar Testes de Unidade.
Depois que testa eles, o resultado de teste total para todas as iterações exibe de teste na janela de Resultados do teste .Para ver os detalhes de cada iteração, clique duas vezes no teste na janela de Resultados do teste .
Orientação
Para obter mais informações, consulte Teste para entrega contínuo com Visual Studio 2012 – capítulo 2: Testes de unidade: Testando o interior e Teste para entrega contínuo com Visual Studio 2012 – capítulo 5: Automatizar testes do sistema
Consulte também
Referência
Conceitos
Verificando o código usando testes de interface do usuário codificada
Best Practices for Coded UI Tests
Supported Configurations and Platforms for Coded UI Tests and Action Recordings