Ich versuche derzeit, die Mock-Bibliothek zu verwenden, um einige grundlegende Nose-Unittests in Python zu schreiben.So schließen Sie das Mock-Paket aus dem Python-Coverage-Bericht mit Hilfe von Nasetests aus
Nachdem ich ein grundlegendes Beispiel beendet habe, habe ich jetzt versucht, nosetests --with-coverage
zu verwenden, und jetzt habe ich das Schein-Paket und das Paket, das ich versuchte, "wegzuspielen", wird im Reichweitenbericht gezeigt. Gibt es eine Möglichkeit, diese auszuschließen? Hier
ist die Klasse I testen wollen:
from imaplib import IMAP4
class ImapProxy:
def __init__(self, host):
self._client = IMAP4(host)
Und der Testfall: von Mock Import Patch
from ImapProxy import ImapProxy
class TestImap:
def test_connect(self):
with patch('ImapProxy.IMAP4') as imapMock:
proxy = ImapProxy("testhost")
imapMock.assert_called_once_with("testhost")
ich nun die folgende Ausgabe für nosetests --with-coverage
.
Name Stmts Miss Cover Missing
------------------------------------------
ImapProxy 4 0 100%
imaplib 675 675 0% 23-1519
mock 1240 810 35% [ a lot of lines]
Gibt es eine Möglichkeit, das Mock-Paket und die imaplib Paket ohne mit manuell alle weiße Liste, aber diese Pakete von --cover-package=PACKAGE
Dank Ned Batchelder Ich weiß jetzt, über die .coveragerc Datei, Dank!
habe ich eine .coveragerc-Datei mit folgendem Inhalt:
[report]
omit = *mock*
Jetzt für mock meine Ausgabe in der Berichterstattung Bericht ist:
mock 1240 1240 0% 16-2356
Es ist das Mock-Paket nicht decken mehr aber zeigt es immer noch im Bericht.
Ich verwende Coverage.py, Version 3.5.2, wenn dies eine Hilfe ist.
Versuchen zum vorherigen Daten mit '--cover-erase' zu löschen. – xbello