Come posso ottenere i dati di copertura del codice da Python BDD Test funzionali utilizzando il comportamento?
-
21-12-2019 - |
Domanda
Non ho visto una risposta per questa specifica domanda ( strumento di copertura del testPer il compito di Test Framework ) e non ho visto nessun risultato di ricerca Google produce una risposta sufficiente.Quindi ...
Come posso ottenere un rapporto sulla copertura del codice da comportarsi?Trovo difficile credere che non ci siano sviluppatori di Python utilizzando la metodologia BDD e trovo ancora più difficile credere che quegli sviluppatori di Python che utilizzano BDD stiano facendo sì senza statistiche sulla copertura del codice dai loro test funzionali.Può copertura.py essere utilizzata per guidare il comportamento per produrre copertura del codice?Come?
Soluzione
Non so come usare comportarsi, ma ho usato cetriolo per BDD, che penso probabilmente quasi simile.E così penso che dovresti essere in grado di usare comportarsi con la copertura.Devi specificare quale file includere nel file .. (L'ho usato con il cetriolo).Vedi se Questo potrebbe aiutare.
Spero che questa risposta alla tua domanda :)
# .coveragerc to control coverage.py
[run]
parallel = True
# if you want to include tests append tests/*
include =
src/*
*src*
[paths]
source =
src/
*/src
tests =
tests/
*/tests
. Altri suggerimenti
A seguito del suggerimento di David sopra.
Assumendo che il codice da testare è in una directory app, aggiungere quanto segue al tuo .CoveragerCerc File:
[run]
source=app/
.
Dal terminale:
coverage run $(which behave);
.
È quindi possibile utilizzare il rapporto di copertura o la copertura HTML come normale.Se non si specifica l'app dir nel tuo file
Commettere può generare dati di copertura junit e Pacchetto di copertura può combinare questi dati da più esecuzioni di test Oltre a produrre un rapporto HTML che è possibile utilizzare o pubblicare automaticamente nel tuo ambiente CI.
Ecco le dichiarazioni che sono attualmente uso per produrre, combinare e report sulla copertura con il comportamento:
cd your/repo/tests # <-- Make sure you're inside your tests dir!
rm -rf behave-reports/*
behave --junit --junit-directory behave-reports
coverage combine
coverage html
.
Il rm -rf behave-reports/*
rimuove con forza tutto all'interno del tipo di comportamento / directory in modo che venga garantito una nuova relazione sulla copertura o nulla (producendo un fallimento in CI, nel mio caso). Si noti che se si esegue i test localmente si consiglia di aggiungere una voce al tuo file .gitignore
(o equivalente) in modo da non aggiungere e commettere risultati del test.
L'esecuzione di comportarsi con --junit
produrrà un'uscita di Junit, mentre il flag --junit-directory
indica il comportamento in cui scrivere i dati di Junit su disco.
Esecuzione di coverage combine
Mangia tutta la copertura del codice e combina questo in un singolo file di copertura.
Infine, coverage html
produce un bel rapporto HTML che include tutti i dati di copertura combinati.
Un'altra opzione, utilizzare la copertura per eseguire lo script principale del comportamento:
coverage run /path/to/lib/python2.7/site-packages/behave/__main__.py
.
Ovviamente vorrai specificare nel tuo .coveragerc
quali file di origine che si desidera includere.