问题描述
我正在使用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
,因为覆盖默认值。