Testes unitários no DevOps
Introdução
No artigo de hoje vamos demonstrar como integrar os seus testes unitários em XUnix com o Azure DevOps
Mão na Massa
Antes de começar, demostro como montar sua primeira pipeline de build no Azure DevOps passo a passo, só acessar o link https://medium.com/@rodolfostopinto97/configurando-uma-aplica%C3%A7%C3%A3o-net-core-2-2-no-azuredevops-b3b87216bb66
Foi desenvolvido um projeto que faz o calculo, utilizando as 4 operações, entre dois valores e com o objetivo de testar se todas as operações estão certas, utilizando os testes unitários.
Foi criado um projeto em XUnit para realizar os testes.
È desenvolvido teste unitário para cada operação, dessa forma garantindo que todas as regras da aplicação estejam corretas.
Rodando os testes localmente é possível visualizar que todos os testes estão corretos, agora vamos integrar com o Azure DevOps, ou sejá, quando for realizado o build da aplicação sera executado os testes de unidade para ver se está tudo certo com nossa regra de negócio.
Agora que já temos nosso projeto de testes vamos integrar com o Azure DevOps.
Acesse a pipeline de build e click em editar, note que eu já tenho um step para executar meus testes unitários.
Como estou usando o .net Core, o Azure DevOps já tem receitas pré definas para esse tipos de aplicação.
Vamos adicionar o caminho do nosso projeto de testes criado, o .csproj
Feito isso, no momento que for realizado o build da aplicação será executado os testes unitários.
Testes
Vamos começar com um teste com falha, suponhamos que foi preciso realizar uma alteração e de forma errada o código que realiza a soma passa realizar a subtração.
Ao realizar o build ele falhou justamente na etapa de testes, como o esperado!
Acesse a aba Tests para visualizar o que falhou.
É possível visualizar exatamente o teste que falhou e qual foi o problema, dessa forma conseguimos corrigi-lós, antes de chegar em produção.
Agora vamos corrigir e rodar o build novamente.
Todos os testes foram bem sucedidos garantido sempre que o código está sendo testado e que estará em um ambiente de testes/produção com essas funcionalidades já testadas, evitando surpresas para os usuários.
E cada vez mais os testes se tornam incrementais, pois se for desenvolvido uma funcionalidade nova, todos os testes já criados vão ser testados normalmente, garantindo que tudo que estava funcionando, continue funcionando.
E mais um vez, não é mágica é DevOps