如何从django_nose coverage中排除特定部分代码

时间:2014-07-02 15:53:57

标签: python django unit-testing code-coverage nose

在极少数情况下,我的方法可能包含在测试期间无法访问的代码分支(例如处理一些罕见的异常等)。

我的意思是我的代码是我永远不想通过测试来覆盖的。是否有特殊类型的注释/文档字符串/标记此类代码,以便与正常代码明确区分并从鼻子代码覆盖率报告中排除?

1 个答案:

答案 0 :(得分:3)

根据coverage documentation,您需要在代码中添加pragma: no cover条评论:

  

排除任何评论为“pragma:no cover”的行。如果说   line引入了一个子句,例如,if子句,或函数或   类定义,然后整个子句也被排除。

a = my_function1()
if debug:   # pragma: no cover
    msg = "blah blah"
    log_message(msg, a)
b = my_function2()

您还可以使用coverage configuration file并使用要从coverage中排除的模式列表定义exclude_lines配置参数。例如,要排除所有__repr__()方法的考虑因素:

[report]
exclude_lines = def __repr__