【问题标题】:coverage.py: exclude filescoverage.py:排除文件
【发布时间】:2010-12-06 06:37:50
【问题描述】:

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

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

【问题讨论】:

  • 如果没有其他人给你答案,Ned 可能很快就会来解决问题——他是这里的常客 :)
  • 不知道自己这么有预见性是不是好事! :)

标签: python testing software-quality code-coverage coverage.py


【解决方案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/*
      

      【讨论】:

        猜你喜欢
        • 2010-12-10
        • 2015-01-19
        • 2014-07-29
        • 2018-01-04
        • 1970-01-01
        • 2017-08-22
        • 2016-02-04
        • 2015-06-11
        • 2013-08-03
        相关资源
        最近更新 更多