pytest.markskip()的作用及用法详解
发布时间:2023-12-28 08:31:11
pytest.mark.skip()的作用是跳过某个测试用例,不执行该用例。有时候我们会遇到一些特定条件下无法测试的用例,或者需要暂时忽略的用例,这时可以使用这个标记来跳过这些用例。
pytest.mark.skip()的用法非常简单,只需要在测试用例的装饰器中加上这个标记即可。例如:
import pytest
@pytest.mark.skip
def test_something():
pass
这样,当执行测试时,这个测试用例将会被跳过,不会执行。
除了直接使用pytest.mark.skip()来跳过用例,还可以给这个标记加上一个参数,表示跳过用例时的原因。例如:
import pytest
@pytest.mark.skip(reason="无法测试")
def test_something():
pass
当测试执行时,会在控制台上显示跳过用例的原因:"SKIP [1] test_something.py:4: 无法测试"。
有时候,我们需要在某些特定条件下跳过用例,这时可以使用带条件的标记。例如,使用pytest.mark.skipif(condition, reason=None)的条件标记,当条件为True时跳过用例。例如:
import pytest
@pytest.mark.skipif(1 > 0, reason="条件不满足")
def test_something():
pass
这个用例会根据条件判断是否要跳过,条件为True时会跳过。
跳过用例时,pytest会将其当作测试通过处理,结果会显示为PASSED。如果想要显式表示为跳过状态,可以使用pytest.mark.xfail(),这个是用来表示预期测试失败的标记。例如:
import pytest
@pytest.mark.xfail
def test_something():
assert 1 == 2
这样,没有抛出异常但是断言失败的用例会被标记为xfail,测试结果会显示为XFAIL。
总结一下,pytest.mark.skip()的作用是跳过某个测试用例,使用装饰器方式添加这个标记即可实现跳过。可以给这个标记添加跳过原因参数,也可以使用带条件的标记实现在特定条件下跳过用例。
