Obecnie próbuję użyć fałszywej biblioteki, aby napisać podstawowe unittests nosa w python.Jak wykluczyć fałszywe paczka z raportu Pythona z wykorzystaniem testów nosetests
Po wykonaniu podstawowego przykładu spróbowałem teraz użyć nosetests --with-coverage
, a teraz mam próbny pakiet, a paczka, którą próbowałem "wyśmiać", jest pokazana w raporcie pokrycia. Czy istnieje możliwość ich wyłączenia?
Oto klasa chcę przetestować:
from imaplib import IMAP4
class ImapProxy:
def __init__(self, host):
self._client = IMAP4(host)
A testcase: z plastra mock importowej
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")
teraz uzyskać następujące dane wyjściowe dla 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]
Czy istnieje sposób na wykluczenie makiety pakietu i Pakiet imaplib bez konieczności ręcznej białych list wszystkich, ale tych pakietów przez --cover-package=PACKAGE
Dzięki Ned Batchelder teraz wiem o pliku .coveragerc, dzięki za to!
stworzyłem plik .coveragerc o następującej treści:
[report]
omit = *mock*
Teraz moje wyjście dla mock w raporcie zasięg jest:
mock 1240 1240 0% 16-2356
Nie obejmuje pakiet próbny dłużej jednak nadal pokazuje to w raporcie.
Używam Coverage.py, wersja 3.5.2, jeśli to jest jakaś pomoc.
Spróbuj usunąć poprzednie dane z '--cover-erase'. – xbello