2

我正在使用nosetestscoverage扩展来衡量我的单元测试的覆盖率。

我最近开始在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似乎正在定义的名称。

4

1 回答 1

0

把它放到你的 .coveragerc 中。

[run]
include = seaborn/*

配置文档 - http://nedbatchelder.com/code/coverage/config.html#config

于 2014-03-10T22:59:05.117 回答