Projeto entregou teste de cobertura nos projetos ppov-front-vue3
e ppov-api
.
Documento fala como foi implementado o teste de cobertura dos projetos ppov-front-vue3
e ppov-api
.
ppov-front-vue3
Para o front o projeto de implementação de teste de cobertura tem duas entregas, a visualização dos trechos não testados no Merge Request do Gitlab e a crítica de percentual mínimo. Vamos documentar cada um dos pontos
Visualização de código não coberto Gitlab
Para conseguirmos visualizar o trecho do novo código não coberto por testes de unidade (imagem acima), foi preciso utilizar uma lib responsável por gerar report
com integração com o gitlab, essa lib é a `“coverage-istanbul”.
Repositório: https://github.com/istanbuljs
Site: https://istanbul.js.org/
Doc Gitlab: https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/cobertura.html
Para configurar é bem simples, basta informar no arquivo vitest.config.ts
o objeto coverage
como no exemplo abaixo:
coverage: {
provider: 'istanbul',
reporter: ['cobertura', 'text'],
exclude: ['node_modules', 'dist'],
lines: 60
}
Para que tudo possa funcionar precisamos informar o provider
que será o instanbul
, o tipo de report
que será dois cobertura
e text
já veremos mais sobre o text pois para funcionar com o Gitlab basta o cobertura
.
para executar e validar se o report foi criado com sucesso na pasta /coverage
na raiz do projeto basta executar o comando:
vitest run --coverage
Visualização de código não coberto NO TERMINAL
Também foi habilitado outra forma de visualizar a taxa de cobertura do código que é via terminal em “tempo de desenvolvimento”
Como mostra na imagem acima, podemos entender como está o andamento da cobertura de cada arquivos do projeto, separando por coluna, hoje no projeto o que importa é a coluna Lines
pois é nela que precisamos focar para aumentar a taxa de cobertura do projeto como todo.
Criticando cobertura mínima
Para critic ar a taxa mínima de cobertura por linha do projeto, precisamos voltar no arquivo vitest.config.ts
no objeto coverage
e configurar o atributo lines
informando nele o percentual mínimo que cada arquivo deve ter, em nosso caso foi configurar o percentual mínimo de 60%.