Configurando relatórios de cobertura de código no Azure DevOps Pipelines

Samuel Lucas
CWI Software
Published in
3 min readJul 10, 2020

Como configurar cobertura de código em projetos .NET Core com o Azure DevOps, considerando testes de unidade e funcionais.

TL;TR;

Se você prefere ir direto ao ponto, veja este gist com um YAML de exemplo.

Uma das métricas que ajudam o time a acompanhar a eficiência dos testes desenvolvidos é a de cobertura de código. Cada plataforma possui seu set de ferramentas para capturarmos essa cobertura e, recentemente tive a oportunidade de aprender e configurar como fazer isso para a plataforma .NET utilizando o coverlet, Report Generator e integrando os resultado direto no Pipeline da Azure DevOps. Neste tutorial vou demonstrar o passo a passo de como eu fiz, para caso alguém deseje replicar para seus projetos.

Resultado após a configuração

Visão do resultado da execução de uma Pipeline
Relatório de cobertura de código — Parte 1
Relatório de cobertura de código — Parte 2

Como configurar

Vamos dividir o processo em 4 etapas:

  1. Setup e configuração do ambiente de execução
  2. Execução dos testes unitários e funcionais capturando a cobertura
  3. Geração dos relatórios de cobertura com o ReportGenerator tool
  4. Publicação dos relatórios na Azure

Setup e configuração do ambiente para execução

Nesta etapa, vamos executar os seguintes passos:

  1. Adicionar as variáveis de build necessárias
  2. Adicionar uma .NET Core task para a etapa de Restore
  3. Adicionar uma .NET Core task para a etapa de Build

01 Pipelines Variables

02 Restore (.NET Core task)

03 Build (.NET Core task)

Execução dos testes capturando a cobertura

Nesta etapa vamos executar os seguintes passos:

  1. Adicionar uma .NET Core task para execução dos testes unitários
  2. Adicionar uma .NET Core task para execução dos testes funcionais

01 Execução dos testes unitários (.NET Core task)

02 Execução dos testes funcionais (.NET Core task)

Geração dos relatórios de cobertura

Nesta etapa vamos executar os seguintes passos:

  1. Adicionar uma Command Line task para Instalar o ReportGenerator tool
  2. Adicionar uma Command Line task para Gerar os relatórios de cobertura

01 Instalar o ReportGenerator tool

02 Gerar os relatórios de cobertura

Publicação dos relatórios na Azure

Nesta etapa vamos executar os seguintes passos:

  1. Adicionar uma Publish code coverage results task para publicar a cobertura na build da Azure

01 Publicar a cobertura na build da Azure

Com isso, agora podemos acompanhar diariamente nossa assertividade nos esforços relacionados a testes, e entender quais são os pontos que precisam maior atenção em questões de cobertura de código. Espero que esse tutorial ajude, dúvidas ou sugestões de melhoria nessa configuração são muito bem-vindas. ⚡️

Fontes

https://dejanstojanovic.net/aspnet/2020/may/setting-up-code-coverage-reports-in-azure-devops-pipeline/

https://discoverdot.net/projects/coverlet

https://github.com/danielpalme/ReportGenerator

--

--

Samuel Lucas
CWI Software

Test Engineer at CWI Software. Currently working with testing for mobile, api & web.