从覆盖范围排除功能

问题描述

我正在使用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 注释,该注释告诉 coveragepy 完全排除该功能。>

# bar/foo.py

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

注意

如果我们在coveragepy config file中设置了exclude_lines,请确保在该设置中 pragma: no cover ,因为覆盖默认值。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...