我目前尝试使用模拟库来编写一些基本的单元测试代码的鼻子在蟒蛇。
在完成一些基本的例子之后,我现在试图用nosetests --with-coverage
,现在我有模拟包,我想“模拟”掉了包在覆盖报告中显示。 有没有排除这些可能性?
下面是我想测试类:
from imaplib import IMAP4
class ImapProxy:
def __init__(self, host):
self._client = IMAP4(host)
而测试用例:从模拟进口补丁
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")
我现在得到以下输出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]
有什么办法来排除模拟包和imaplib包,而无需通过手动白名单,但所有这些软件包--cover-package=PACKAGE
由于斯内德尔德我现在了解的.coveragerc文件,感谢您的!
我创建了包含以下内容的.coveragerc文件:
[report]
omit = *mock*
现在我的输出模拟在覆盖报告是:
mock 1240 1240 0% 16-2356
它不包括模拟包不再,但仍显示它在报告中。
我用Coverage.py,版本3.5.2,如果这是任何帮助。