Cobertura de código explicada

Relatórios e métricas com Istanbul e o que elas significam!

Se não está em uso, deveria estar aqui?

Porquê?

O que?

Como?

Instalação

npm install istanbul --save-dev
node_modules/.bin/istanbul help

Exemplo — Aquele bem simples

mkdir learn-istanbul
cd learn-istanbul
touch test.js
x = 42;
if(false)
x =-1;
node ./node_modules/.bin/istanbul cover test.js
"coverage": "istanbul cover ./test.js"
npm run coverage

Exemplo — Aquele “vida real”

if(
employee.status === 'terminated' &&
employee.left - today() > 90
) {
selfDestuct();
}

É essencial defender uma avaliação do código analisado, ainda não há substituto para uma boa revisão de código!

Serviços de Cobertura de Código

Configurando Codecov

before_install:
- pip install --user codecov
after_success:
- codecov --file coverage/lcov.info --disable search
Sim, é possível ter relativamente “grandes” com 100% de cobertura de código
Nota: Se você quiser evitar que pessoas (ou seu time) criem PR com a quantidade menor do que a combinada (ex: 100%!!), adicione um script como coverage no seu pre-commit hook. Não sabe o que é o pre-commit hook? Leia mais sobre aqui!

Adicionando a “medalha” no seu README

Finalizando

Créditos

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store