【问题标题】:Exclude a function from coverage从覆盖范围中排除函数
【发布时间】:2021-02-13 02:14:47
【问题描述】:

我正在使用coverage.py 来获取代码的测试覆盖率。

假设我在两个不同的模块中有两个函数同名

# foo/foo.py

def get_something():
    # fetch something
    # 10 line of branch code
    return "something foo/foo.py"


# bar/foo.py

def get_something():
    # fetch something
    # 20 line of branch code
    return "something bar/foo.py"

我怎样才能“完全”排除 bar.foo.get_something(...) 功能?

【问题讨论】:

  • 你可以把它注释掉......这只是你不需要运行这个函数
  • # pragma: no cover 放在所有行中显然不是解决问题的好方法。
  • 这只是一个建议
  • 使用类然后每个氏族可以有相同的功能名称

标签: python coverage.py test-coverage


【解决方案1】:

我们可以在函数定义级别上使用pragma注释告诉coveragepy完全排除该函数。

# bar/foo.py

def get_something(): # pragma: no cover
    # fetch something
    # 20 line of branch code
    return "something bar/foo.py"

注意

如果我们有带有exclude_lines 设置的coveragepy config file,请确保该设置中有pragma: no cover,因为它会覆盖默认值。 p>

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 2018-12-04
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 2021-07-10
    • 1970-01-01
    • 2011-04-07
    相关资源
    最近更新 更多