Come posso ottenere i dati di copertura del codice da Python BDD Test funzionali utilizzando il comportamento?

StackOverflow https://stackoverflow.com//questions/23019740

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?

È stato utile?

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 .coveragercercer , la copertura testerà tutte le librerie Python locali per l'installazione del tuo comportamento.

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top