我正在使用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似乎正在定义的名称。