Foi útil?

Solução

Onde eu trabalho temos apenas começou a avaliar algumas ferramentas de teste para o nosso sistema. Nos deparamos com uma ferramenta chamada branca, que utiliza o Framework UI Automation. Nota que o branco também tem uma função de gravação, embora eu acho que tem aparência de problemas e ainda está sendo desenvolvido.

O que tentei fazer foi configurá-los para olhar como testes de unidade ou seja [TestFixture] [Test] etc. em seguida, fomos capazes de executá-los através nunit, ao mesmo tempo que os testes de unidade.

Nós descobrimos que ele pode ser difícil de acessar alguns dos componentes dentro de sua janela, mas não tive muita chance de investigar o porquê.

Se você não se importa de pagar para o software, então eu recomendo TestComplete .

Outras dicas

Eu estou no meio de fazer a automação de interface do usuário de um aplicativo WPF no trabalho. Estou usando Branco e IronRuby e ele funciona muito bem. Eu escrevi como eu fiz isso aqui: http://www.natontesting.com/2010/02/17/how-to-test-a-wpf-app-using-ironruby-and-white/

Inicialmente foi com branco, e em seguida, mudou-se longe dele. Ele tenta ser genérica e abstrata sobre o Win32 API, WinForms, aplicativos Java, e a automação API MS UI. O MS UI Automation API também está tentando ser genérica e abstrata sobre a api win32 e winforms e WPF, assim você acaba em um "menor denominador comum-de denominador comum mais baixo" cenário.

O resultado disso foi que o Branco elemento de busca API simplesmente não foi suficiente flexível para encontrar vários elementos de interface do usuário que precisávamos de encontrar, e não exponha o suficiente dos elementos estrutura de automação da interface do usuário subjacentes para nós para fazer qualquer coisa útil com ele.

Acabamos indo com um homegrown tipo-of-quadro; Usamos o quadro MS UIAutomation diretamente, mas têm métodos de extensão e classes auxiliares para lidar com os cenários não aborda. (Teclado e entrada de mouse, principalmente).

Nota: os nossos scripts de teste e quadro homegrown estão todos usando IronRuby. capacidade de Ruby para adicionar métodos para classes existentes e é sintaxe flexível (combinado com method_missing) são impressionantes para este tipo de coisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top