2014-04-06 11 views
8

Come si può ottenere un rapporto di copertura di prova accurato quando si utilizza py.test + gevent?determinazione della copertura di prova con py.test + gevent

Ho già provato la cosa ovvia, utilizzando il plug-in pytest-cov per py.test, ma è generates inaccurate reports when gevent is in use.

+0

+1 Ho lo stesso identico problema ... Ho provato a utilizzare git + https: //github.com/newbrough/coverage.git e questo ha funzionato davvero bene ma recentemente pytest si lamenta che la versione è troppo vecchia e non riesce. –

risposta

5

Il gevent coverage issue è stato risolto in coveragepy di recente.

Tuttavia, pytest-cov non riesce a essere eseguito con coverage>=4.

Una possibile soluzione è eseguire py.test con le versioni successive di coverage.py senza utilizzare il plug-in pytest-cov.

In primo luogo, installare coverage >= 4 e disinstallare il pytest-cov plugin:

pip install --pre --upgrade coverage 
pip uninstall pytest-cov 

Aggiungere la seguente impostazione per .coveragerc:

[run] 
concurrency = gevent 

Poi gestita con:

coverage run -m py.test 

(al posto del esecuzione regolare py.test)

+0

Questo ha funzionato assolutamente brillante per me. –