代码之家  ›  专栏  ›  技术社区  ›  bers

当pytest运行时,我可以跳过它(或将其标记为不确定)吗?

  •  0
  • bers  · 技术社区  · 2 年前

    我知道 pytest 的decorator将测试标记为要跳过(有条件地)。然而,所有这些都在测试开始前进行了评估。我有几个测试需要用户交互(这些测试不是在CI上运行的),如果没有提供交互,我想把这些测试标记为“通过”或“失败”。“跳过”就可以了,也可以是“不确定的”或“取消的”或其他什么。

    这可能吗?

    2 回复  |  直到 2 年前
        1
  •  1
  •   BamGbam    2 年前

    在pytest中,当不满足特定条件时,可以在测试本身中使用pytest.mark.skip装饰器,从而在执行过程中动态跳过测试。如果您有要求用户交互的测试,并且希望在没有这种交互的情况下将其标记为直接的“通过”或“失败”之外的其他内容,则可以实现测试中的条件评估。

    在基本交互不可用的情况下,可以在测试函数中调用pytest.skip(“指示跳过的原因”)。这种方法允许您表示由于没有确定通过或失败结果的先决条件而绕过了测试,并且结果将在测试摘要中记录为“跳过”。

        2
  •  0
  •   bers    2 年前

    原来你可以打电话 pytest.skip() 也来自测试内部。

    try:
        ...
    except some.TimeoutException:
        pytest.skip("Timeout waiting for user interaction")
    

    工作良好。