Ho appena iniziato a scrivere alcuni test unitari per un progetto Python che utilizzo l'unittest e la copertura. Sono solo testando una piccola percentuale, ma cercando di capire la copertura del codiceCopertura test unità Python
eseguo il mio test e ottenere la copertura utilizzando utilizzando il seguente
python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m
Il problema che sto avendo è che la copertura è dicendo ho copertura del codice 44% e conta solo i file che:
- sono state analizzate al test di unità (tutti i file che non sono stati testati sono mancanti e non nella copertura complessiva)
- erano in librar anche nell'ambiente virtuale e nella copertura del codice dei test effettivi. Sicuramente non dovrebbe includere i test effettivi nei risultati?
Inoltre si dice i file che sono effettivamente testati in queste unit test hanno solo le prime righe testate (che sono nella maggior parte dei casi, le istruzioni di importazione)
Come faccio ad avere una copertura del codice più realistica o è così che deve essere?
Grazie, questo funziona per me! 'coverage coverage --source = {dir} -m unittest discover -s tests /' coprirà {dir}. Posso chiederlo però: che ne dici di passare attraverso i sottodirmi (in modo ricorsivo)? – sunyata
Ho scoperto che è possibile utilizzarlo per includere più directory/moduli: '--source = {dir1}, {dir2}, {etc}' (si noti che non c'è spazio dopo i segni di virgola). Sarebbe comunque utile con un'opzione ricorsiva, se disponibile, nel caso in cui nuovi moduli vengano aggiunti al codice sorgente. – sunyata
Documentazione: [Uso della riga di comando Coverage.py] (https://coverage.readthedocs.io/en/latest/ cmd.html) – sunyata