Existem muitos artigos na Internet sobre como usar o SpecFlow, como configurar o TFS para executar testes, mas não existe nenhum que contenha todos os aspectos. Neste artigo, direi como você pode tornar o lançamento e a edição de scripts SpecFlow conveniente para todos.
Abaixo do corte você aprenderá como conseguir:
- Executando testes do TFS
- Vinculação automática de scripts a casos de teste no TFS
- Conteúdo sempre atualizado de casos de teste no TFS
- Capacidade de editar scripts diretamente no sistema de controle de versão por testadores
Pré-história
Enfrentamos a tarefa de automatizar os testes de aplicativos usando a abordagem BDD. Como a base do sistema de rastreamento de tarefas em nossa empresa é o TFS, tive uma imagem em minha cabeça onde as etapas do script SpecFlow são as etapas dos casos de teste no TFS e os testes são iniciados a partir dos planos de teste. Abaixo está como eu o implementei.
O que precisamos:
- Projeto com testes no SpecFlow
- Azure DevOps Server (também conhecido como Team Foundation Server)
- Uma ferramenta para sincronizar scripts SpecFlow com casos de teste no TFS
Fixação
1. Criando uma construção de projeto com testes
Tudo é simples aqui, montagem e publicação de artefatos. Mais sobre a terceira tarefa posteriormente.
2. Criando uma versão para executar testes
Criando uma versão com uma tarefa – Visual Studio Test
Neste caso, a tarefa está configurada para executar testes manualmente a partir do plano de testes
3. Sincronização de casos de teste
Sabemos que o Visual Studio permite vincular métodos de teste a casos de teste no TFS e executá-los a partir de planos de teste. Para não fazer isso manualmente e também para sincronizar o conteúdo dos scripts, escrevi um aplicativo de console simples
Como usar o FeatureSync
Adicione namespace e localidade ao cabeçalho do arquivo de recursos:
#language:en
@Namespace:Application.Autotests
Feature: Log to application
*namespace deve corresponder ao nome do arquivo .dll que contém os métodos de teste
Criamos casos de teste vazios no TFS e adicionamos tags com seus id aos scripts:
@2124573 @posistive
Scenario: Successful authorization
Given I on authorization page
And I enter:
| Login | Password |
| user | pass |
When I press Login button
Then Browser redirect on Home page
Inicie o FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba
No nosso caso, o lançamento ocorre após a construção do projeto com testes:
Resultado da sincronização
As etapas do script SpecFlow são sincronizadas e o status da automação é definido
4. Configurando um plano de teste
Criamos um plano de teste, adicionamos nossos casos automatizados a ele, selecionamos build e release nas configurações
5. Executando testes
Selecione o teste necessário no plano de teste e execute-o.
Conclusão
As vantagens desta configuração:
- qualquer testador pode abrir o arquivo fetaure no formulário web de controle de versão, editá-lo e as alterações entrarão em vigor imediatamente após a compilação
- você pode executar testes individualmente a qualquer momento
- modelo de teste transparente - sempre sabemos o que o teste que lançamos faz.
Fonte: habr.com