对于python coverage
软件包,使用else
可以忽略缺少的# pragma: no branch
的覆盖范围。
当在多行中中断长的if语句时,这似乎不起作用:
if this_is_a_verylong_boolean_expression == True and another_long_expression \
and here_another_expression: # pragma: no branch
do_something()
这是coverage
的错误还是预期的行为?
有没有一种方法可以处理此类多行语句,而忽略coverage中缺少的分支?还是我只需要接受我的承保范围摘要中缺少的分支?
答案 0 :(得分:1)
我意识到这并不是您所要的,但是我建议您将行重构的时间不要太长。我想如果将其更改为以下代码,该代码将更具可读性和可维护性:
some_condition = this_is_a_verylong_boolean_expression
another_test = another_long_expression
last_check = here_another_expression
if some_condition and another_test and last_check: # pragma: no branch
do_something()
这为您提供了给这些表达式起助记名称的机会。
在coverage.py问题本身上:您可以使编译指示工作如下:
if (this_is_a_verylong_boolean_expression == True and another_long_expression # pragma: no branch
and here_another_expression):
do_something()