背景
我有几个使用coverage.py 的Django 项目,并且一直在尝试向我的.coveragerc 配置文件的exclude_lines 部分添加一些额外的表达式。问题是,即使使用适当的正则表达式可以在http://www.pythonregex.com或http://www.regexr.com等测试器中提取线路,它也不会导致线路被忽略那个报告。
我已经查看了文档并浏览了存储库,但无法找出任何原因来解释为什么我的配置可能无法正常工作。从文档看来,我的配置与他们描述的完全一样。
我还尝试使用django-nose版本 1.2,这是最后一个 PyPI 版本,它允许异常注入但无济于事,它似乎在确定 Django 视图和 Django REST Framework API 端点的覆盖范围方面存在一些问题在 1.7 版中。
我试过的
我的配置如下:
[run]
branch = True
omit =
*/tests*
*/migrations/*
*__init__.py*
*/settings/*
*wsgi.py*
*admin.py*
[report]
# Regexes for lines to exclude from consideration
exclude_lines =
pragma: no cover
def __repr__
if self.debug:
raise AssertionError
raise NotImplementedError
(.*)except Exception as e:(.*)
if 0:
if __name__ == .__main__.:
我还在配置的报告部分尝试了以下组合来处理异常:
(.*)except Exception as e:
except Exception as e:
except Exception as e:(.*)
下面是我希望忽略的代码部分的函数示例:
def my_func():
try:
# Some logic
return True
except Exception as e:
return defensive_exception(my_func.__name__, e, False)
在上面的示例中,根据文档,我希望except Exception as e:
忽略下面的所有内容,或者至少忽略该except Exception as e
行本身。然而,情况似乎并非如此。如果有人对我的配置有什么问题或我需要做些什么有所了解,我将不胜感激。