我正在使用nosetests
和coverage
扩展来衡量我的单元测试的覆盖率。
我最近开始在six
我的包中包含该模块,以使用户更容易使用。
问题是在six
本地似乎会弄乱覆盖率报告。
我像这样运行我的测试:
nosetests --cover-erase --with-coverage --cover-html --cover-package seaborn
该报告最终包括对不在我的目录树中的文件的引用:
Name Stmts Miss Cover Missing
-----------------------------------------------------
ConfigParser 391 391 0% 90-753
HTMLParser 306 306 0% 11-472
Queue 125 125 0% 3-244
copy_reg 105 105 0% 7-188
htmlentitydefs 9 9 0% 4-273
httplib 704 704 0% 69-1342
repr 103 103 0% 3-132
seaborn 9 0 100%
<...>
我认为six
导致问题的原因是当我搜索这些名称时,它们只出现在six.py
:
$ git grep ConfigParser
seaborn/external/six.py: MovedModule("configparser", "ConfigParser"),
$ git grep copy_reg
seaborn/external/six.py: MovedModule("copyreg", "copy_reg"),
在我的代码中,我没有*
从六个导入,我所有的导入都是特定的,比如from .external.six.moves import range
如何从覆盖率报告中排除这些对象/文件?
我已经尝试添加omit = seaborn/external
到我的.coveragerc
(下[run]
)中,并且从报告中排除了文件seaborn/external
,但不包括six
似乎正在定义的名称。