2016-08-07 22 views
1

I nose und coverage in meiner virtuellen env installiert haben, aber es ist nichtnosetests derzeit keine Deckung importieren mit virtualenv

(venv) ../my_cookbook$ nosetests --with-coverage 

nose.plugins.cover: ERROR: Coverage not available: unable to import coverage module 

Ich fragte mich funktioniert, wenn es irgendwie meine Venv war entkommen, so habe ich versucht, diese und es funktionierte!

(venv) ../my_cookbook$ ./venv/bin/nosetests --with-coverage 

Dann wollte ich sehen, ob mein Weg wie durcheinander war.

(venv) ../my_cookbook$ which nosetests 

/home/peter/Projects/my_cookbook/venv/bin/nosetests 

(venv) ../my_cookbook$ which coverage 

/home/peter/Projects/my_cookbook/venv/bin/coverage 

Also, was ist hier los? Irgendwie entgeht der nosetests Befehl meinem virtualenv aber ich weiß nicht wie.

+1

Als Randbemerkung, sollte es tatsächlich [bevorzugte Tests von Deckung laufen] werden (http://stackoverflow.com/questions/38237057/running-tests-from-coverage-py-vs-running-coverage-from-test-runner). – alecxe

+0

sehr interessant ... das funktioniert perfekt. Mach es zu einer Antwort und ich werde es ausnehmen, aber ich würde es lieben und erklären –

Antwort

1

Leider habe ich keine Erklärung, warum die Nase Plugin ist nicht Abdeckung Aufnehmen, aber Ausführen Ihrer Tests durch coverage sollten mit Hilfe von Testläufer Plugins (Nase Abdeckung Plugin in Ihrem Fall) im Gegensatz bevorzugt werden . Quoting Ned Batchelder (der Autor der Berichterstattung):

mit einem Plugin bedeutet, Sie sind abhängig von diesem Verhalten des Plugins ist korrekt und verständlich. Um hilfreich zu sein, werden Plugins ihre eigene Logik haben, die vielleicht die beste Idee war, als sie geschrieben wurden, aber der Testläufer und/oder die coverage.py könnten sich in der Zwischenzeit geändert haben. Die Plugins sind nicht so gut gepflegt wie die anderen Komponenten. Wenn Sie sie vermeiden können, haben Sie weniger Bedenken.

Mit anderen Worten laufen:

$ coverage run -m nose 

und die Berichterstattung Bericht:

$ coverage report