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 cálculo, 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.
Um teste unitário é desenvolvido para cada operação. Dessa forma, garante 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 seja, quando for realizado o build da aplicação, serão executados 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 tipo 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ão executados 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-los, antes de chegar em produção.
Agora vamos corrigir e rodar o build novamente.
Todos os testes foram bem sucedidos. garantindo sempre que o código esteja sendo testado e que estará em um ambiente de testes/produção com essas funcionalidades já testadas. Com isso, evitando surpresas para os usuários.
E cada vez mais os testes se tornam incrementais, pois se for desenvolvida 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.