coverage.py:排除文件

fly*_*ire 36 python testing code-coverage software-quality coverage.py

如何从coverage.py报告中排除整个文件?

根据文档,您可以通过匹配行来排除代码.我想排除整个文件,以便报告不包含第三方库.我错过了什么吗?可以吗?

Ned*_*der 52

您可以使用--omit标志省略模块.它采用以逗号分隔的路径前缀列表.例如:

coverage run my_program.py
coverage report --omit=path/to/3rdparty
Run Code Online (Sandbox Code Playgroud)

  • @moose我有同样的问题.通过使用通配符解决了它.像这样:`覆盖率报告--omit ="../../ django-tastypie/*"`.注意结尾的`*`. (9认同)
  • @NedBatchelder这对我不起作用,请参阅http://pastebin.com/YFg3fbmW.我有`coverage.py,版本3.5.2.HTTP:// nedbatchelder.com /代码/ coverage`.你知道我做错了什么吗? (2认同)

小智 13

省略一些使用coverage API为我工作的文件.嗯,这与Ned建议的一样.

这是我如何做到的:

cov = coverage.coverage(omit='/usr/lib/python2.6/site-packages/*')


Flo*_*ker 13

除了其他答案中的选项外,您还可以通过setup.cfg以下方式配置忽略的文件:

[coverage:run]
omit =
    some/directory/*
    debug_*.py
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档


phi*_*phi 12

pyproject.toml

[tool.coverage.run]
omit = [
    "some/directory/*",
    "other/lib.py"
]
Run Code Online (Sandbox Code Playgroud)


muT*_*hie 10

创建一个新文件.coveragerc并添加以下行

[run]
branch = True
omit =
    directory/*
Run Code Online (Sandbox Code Playgroud)