coverage.py:排除文件
Posted
技术标签:
【中文标题】coverage.py:排除文件【英文标题】:coverage.py: exclude files 【发布时间】:2010-12-06 06:37:50 【问题描述】:如何从coverage.py 报告中排除整个文件?
根据文档,您可以通过匹配行来排除代码。我想排除整个文件,以便报告不包括第 3 方库。我错过了什么吗?能做到吗?
【问题讨论】:
如果没有其他人给你答案,Ned 可能很快就会来解决问题——他是这里的常客 :) 不知道自己这么有预见性是不是好事! :) 【参考方案1】:您可以使用 --omit 标志省略模块。它采用逗号分隔的路径前缀列表。比如:
coverage run my_program.py
coverage report --omit=path/to/3rdparty
【讨论】:
在 API 中,您提供了您要报告的模块列表,因此那里没有太多方便的控制。 @NedBatchelder 这对我不起作用,请参阅 pastebin.com/YFg3fbmW 。我有coverage.py, version 3.5.2. http://nedbatchelder.com/code/coverage
。你知道我做错了什么吗?
@moose 我遇到了同样的问题。通过使用通配符解决了它。像这样:coverage report --omit="../../django-tastypie/*"
。注意末尾的*
。
如果我想省略多个文件怎么办,我可以在setup.cfg
这样的地方配置它
@VaibhavVishal 使用逗号--omit=dir1/*,dir2/*
【参考方案2】:
除了其他答案中的选项外,您还可以通过setup.cfg
配置忽略的文件:
[coverage:run]
omit =
some/directory/*
debug_*.py
详情请参阅documentation。
【讨论】:
【参考方案3】:使用覆盖 API 省略一些文件对我有用。 嗯,这和 Ned 建议的一样。
这是我的做法:
cov = coverage.coverage(omit='/usr/lib/python2.6/site-packages/*')
【讨论】:
【参考方案4】:创建一个新文件.coveragerc
并添加以下行
[run]
branch = True
omit =
directory/*
【讨论】:
以上是关于coverage.py:排除文件的主要内容,如果未能解决你的问题,请参考以下文章
Coverage.py 不会发现子目录中没有 init.py 文件的测试