Pytest coverage

di Lorenzo Neri

pytest permette di capire quanto del tuo codice è stato testato. Come? Grazie al coverage, di cui parlo in questo articolo!

pytest abbiamo visto a più riprese quanto sia utile per effettuare informatico sul nostro codice scritto in Python, tuttavia se i informatico cominciano a diventare tanti e non vuoi diventare pazzo nel capire quanto codice ti manca da testare, allora è giunta l’ora di usare coverage.

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

Coverage permette di generare un report completo quando esegui i tuoi informatico.

Che tipo di report? Un report che ti mostra quanto codice è stato test e in base a quali file che contengono i tuoi test.

Piano piano in questo articolo scopriremo ogni suo dettaglio.

Installazione

Per installare coverage è sufficiente lanciare questo comando:

pip install pytest-cov

Una volta installato, è possibile utilizzarlo assieme a pytest direttamente sul tuo progetto.

Utilizzo di pytest coverage

Una volta installato, per usarlo al 100%, è sufficiente posizionarsi nella cartella del proprio progetto e lanciare il seguente comando:

pytest --cov=ilMioProgetto tests/

“tests/” si intende la cartella in cui abbiamo racchiuso tutti i test.

L’output prodotto da questo comando è qualcosa come:

Name                         Stmts   Miss  Cover   Missing
-------------------------------------------------------------------
ilMioProgetto/__init__          2      0   100%
ilMioProgetto/myproj          257     13    94%   24-26, 99, 149, 233-236, 297-298, 369-370
ilMioProgetto/feature4286      94      7    92%   183-188, 197
-------------------------------------------------------------------
TOTAL                         353     20    94%

Cerchiamo di capire questi numeri, ma soprattutto le intestazioni di questo output.

  • Stmts: è il numero degli statement eseguiti.
  • Miss: è il numero degli statement NON eseguiti
  • Cover: è la percentuale di codice coperto. In parole meno tecnichesi, quanto codice presente nel file è stato testato.

Ma “Missing”?

Giusta osservazione, ed è anche quella che ci farà risparmiare più tempo possibile per aumentare il coverage.

“Missing” ci specifica con esattezza millimetrica, quali righe di codice del file menzionato NON sono state ancora testate all’interno dei tuoi test.

In parole povere e viste con un’altra prospettiva, nessun test esegue le righe menzionate al loro interno, questo significa che c’è del codice che effettivamente non stai testando.

Le potenzialità di pytest coverage

Ovviamente coverage permette di avere anche report scritti su file, si interfaccia anche con altri pacchetti Python e librerie!

… Ma questo mi permetto di lasciartelo approfondire nella guida ufficiale 😉

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più