首页 > 解决方案 > 使用pytest的xfail单一假设案例?

问题描述

使用 pytest,我将特定参数设置为按预期失败

我的测试套件虽然使用假设。这是我们知道的一个错误,我们不打算在此版本的 API 中修复。它已经被记录在案,并且修复它所花费的时间不值得目前所需的努力。

有用的是,假设每次测试套件运行时都会指出这个失败,我们已经学会了忽略它。显然这很糟糕(特别是因为它导致我们忽略了其他我们不应该做的事情)。

有没有办法告诉 pytest 预期单个参数值的假设失败?我不想完全删除它,因为有一个更大的项目即将修复它。当这种情况发生时,我想假设再次检查这种情况。

我想应用这个的测试用例定义如下:

@given(inp=st.text(min_size=1))
def test_input(inp):
   ...

我的目标是能够说当inp等于特定值时,预期会失败。否则,该测试应该通过。

标签: pythonpytestpython-hypothesis

解决方案


您可以有条件xfail地(或类似地skip)迭代

@given(inp=st.text(min_size=1))
def test_input(inp):
    if inp == some_value:
        pytest.xfail("Marking xfail as inp equals some_value")

推荐阅读