Comment exclure de se moquer d'un package à partir de python rapport de couverture à l'aide de nosetests

Actuellement, j'essaie d'utiliser la maquette de la bibliothèque pour écrire des nez unittests en python.

Après la finition de base exemple, j'ai maintenant essayé d'utiliser nosetests --with-coverage et maintenant, j'ai la maquette de l'emballage et le paquet j'ai essayé de " se moquer de loin sont présentés dans le rapport sur la couverture. Est-il possible d'exclure ces?

Ici, c'est la classe que je veux tester:

from imaplib import IMAP4

class ImapProxy:
    def __init__(self, host):
        self._client = IMAP4(host)

Et les cas de test:
de se moquer de l'importation 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")

Je suis maintenant obtenir la sortie suivante pour 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]

Est-il de toute façon à l'exclure de la maquette de l'emballage et le imaplib paquet sans avoir à la main une liste blanche mais tous ces paquets par --cover-package=PACKAGE

Grâce à Ned Batchelder je sais maintenant sur le .coveragerc fichier, merci pour ça!

J'ai créé un .coveragerc fichier avec le contenu suivant:

[report]
omit = *mock*

Maintenant ma sortie de fantaisie dans le rapport de couverture:

mock                     1240   1240     0%   16-2356

Il ne couvre pas la simulation package plus longtemps, mais encore à l'affiche dans le rapport.

- Je utiliser Coverage.py version 3.5.2 si ce n'est d'aucune aide.

  • Essayez d'effacer les données précédentes avec --cover-erase.