python-3.x - 覆盖范围:编译指示:没有带有多行语句的分支
问题描述
对于 pythoncoverage
包,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
还是预期的行为?有没有办法处理这些多行语句并忽略覆盖范围中缺少的分支?还是我只需要接受我的报道摘要中缺少的分支?
解决方案
我意识到这并不是您所要求的,但我建议您将该行重构为不要那么长。我猜如果您将代码更改为:
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()
推荐阅读
- python - 如何在两个字典中使用多个键列表值
- python - Conda 不允许我激活环境
- excel - 如何在宏中使用替换函数将字符替换为其他字符
- git - git subtree:内部项目包括外部项目的整个历史。这是预期的吗?
- xml - 目录中的类似 XML 配置文件需要更新 - 在 SingleNode 中添加新属性和替换现有属性
- angular - 如何使用 ngx-build-plus (extra-webpack-config) 运行 e2e 测试?
- llvm - 编写 LLVM 转换通道以在每个函数的开头注入延迟
- javascript - 根据某些条件从嵌套的 Javascript 对象中获取键
- entity-framework - 运行我的颤振应用程序时出现 Gradle 错误
- google-cloud-platform - GCP 云运行限制