使代码覆盖率达到100%-尝试通过-除了抑制

时间:2018-12-10 10:00:57

标签: python exception code-coverage pytest contextmanager

我对pytest感到困惑,想知道是否有人知道发生了什么事。

我试图使项目的代码覆盖率达到100%。 缺少的两行分别是try-except-pass的except和pass部分:

> USER, PASS = None, None
> try:
>     from secrets import USER, PASS
! except ImportError:
!     pass

我将其更改为:

with suppress(ImportError):
    from secrets import USER, PASS

现在,即使我没有添加任何测试,导入也包含在我的测试中(?)。

为什么?这是怎么回事?

1 个答案:

答案 0 :(得分:1)

因为您已删除except块。覆盖率只是检查代码行,因为很显然,您进行了测试,当到达代码的这一部分并成功执行时,该测试不会引发ImportError。并且coverage将这些算为已覆盖。