Domanda

Sono una specie di novellino con test di unità Python, e in particolare la copertura.py. È auspicabile che i rapporti sulla copertura includano la copertura dei file di test effettivi?

Ecco uno screenshot del mio report HTML come esempio.

Puoi vedere che il rapporto include test / test_credit_card . All'inizio stavo cercando di omettere la directory test / dai rapporti, in questo modo:

coverage html --omit=tests/ -d tests/coverage

Ho provato diverse varianti di quel comando ma non potevo non per tutta la vita ottenere i test / esclusi. Dopo aver accettato la sconfitta, ho iniziato a chiedermi se forse i file di test sono supposti da includere nel rapporto.

Qualcuno può far luce su questo?

È stato utile?

Soluzione

  

Modifica: ora credo di essere d'accordo con il commento qui sotto sul fatto che non è un bene   idea di combinare un test del codice di produzione con un test del test   codice. Non riesco a cancellare una risposta accettata, quindi la lascerò invariata.

     

** Per favore riduci il voto alla mia risposta! **


È una buona idea vedere la copertura dei test in quanto può indicare problemi. Se il tuo codice di test non viene eseguito, non ha molto senso scriverlo!

Quello che ottengo sempre è quando do lo stesso nome a due funzioni di test unitario: aggiungo un nuovo test diversi mesi dopo l'originale e ho appena scelto lo stesso nome. Il framework unittest non si lamenterà di questo - una delle funzioni nasconde l'altra e semplicemente non eseguirà uno dei test! Il rapporto di copertura dettagliato mostra immediatamente il problema.

Se nei test sono presenti altri codici che non vengono eseguiti, ciò potrebbe indicare anche altri bug, sebbene in genere ci siano spesso un paio di righe di codice del boilerplate che potrebbero non essere coperte a seconda di come vengono invocati i test, quindi non preoccuparti di arrivare al 100%.

E se hai un codice di prova che in realtà non è più necessario, è sempre bene eliminarlo!

Altri suggerimenti

copertura html --omit = " * / test * " -d test / copertura

Crea il file .coveragerc nella cartella principale del tuo progetto e includi quanto segue:

[run]
omit = *tests*

Puoi anche specificare esplicitamente su quale directory ha il codice su cui vuoi ottenere la copertura invece di dire quali cose omettere. In un file .coveragerc , se la directory di interesse si chiama demo , sembra

[run]
source = demo
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top