📜  Pytest-Xfail 跳过测试(1)

📅  最后修改于: 2023-12-03 15:33:55.873000             🧑  作者: Mango

Pytest-Xfail 跳过测试

在编写测试用例时,有时可能会遇到一些暂时无法通过的测试,但不希望将它们标记为失败。这时就可以使用 pytest-xfail 插件来标记这些测试。

安装

使用以下命令安装 pytest-xfail

pip install pytest-xfail
标记测试

使用 @pytest.mark.xfail 装饰器来标记测试。当测试用例的结果符合预期时,将会被标记为 “xfail” 而不是 “fail”。我们可以通过 --strict-markers 参数来验证标记是否被正确使用。

import pytest

@pytest.mark.xfail
def test_failing_function():
    assert False

@pytest.mark.xfail
def test_passing_function():
    assert True

@pytest.mark.xfail(reason="This test is designed to fail.")
def test_failing_reason():
    assert False

在以上例子中,第一条测试用例将被标记为 xfail,因为断言失败。第二条测试用例将被标记为 xpass,因为断言成功。第三条测试用例将被标记为 xfail,并在代码中提供了原因。

如果测试用例的断言成功,则使用 @pytest.mark.xfail(strict=True) 标记。

运行测试

运行测试时需要加上 --runxfail 参数,这样只有通过 xfail 标记的测试才会被运行。

pytest --runxfail
总结

Pytest-xfail 插件为我们提供了一种在编写测试用例时跳过测试的方式。使用 @pytest.mark.xfail 装饰器来标记测试,通过 --runxfail 参数来运行带有 xfail 标记的测试。