前言
从这篇开始,逐一解决fixture是啥?mark是啥?参数request是啥?钩子函数是啥?parametrize参数化是啥?这些问题。本片先介绍一下mark是啥?以及如何使用
Markers有啥用?
当使用 Pytest 运行测试时,可以通过标记(Markers)来为测试函数或类添加自定义的元数据。标记可以用于对测试进行分类、过滤和定制化。
查看所有Markers
pytest --markers
常用的内置标记
内置标记(Built-in Markers): Pytest 提供了一些内置的标记,用于常见的测试场景。一些常用的内置标记包括:
@pytest.mark.skip: 标记该测试为跳过;@pytest.mark.parametrize: 标记该测试使用参数化,可以为测试函数指定多组参数;@pytest.mark.xfail: 标记该测试为预期失败;@pytest.mark.skipif: 根据条件动态地跳过某个测试。@pytest.mark.timeout:为测试用例设置运行超时时间。
@pytest.mark.skip
可以设置一个可选参数reason,表明跳过的原因
import pytest
@pytest.mark.skip()
def test_01():
pass
未增加跳过原因,输出内容为
test_demo.py::test_01 SKIPPED (unconditional skip) [100%]
Skipped: unconditional skip
我们增加跳过原因,看看输出结果
import pytest
@pytest.mark.skip(reason='skip reason')
def test_01():
pass
执行输出结果如下
test_demo.py::test_01 SKIPPED (skip reason) [100%] Skipped: skip reason
可以看到会直接显示具体原因。
pytest.skip方法
这里我们顺带提一下这个方法。可以在测试执行期间强制跳过
def test_01():
pytest.skip(reason="skip reason")
另外,还可以为其设置一个布尔型的参数allow_module_level(默认为False),表明是否允许在模块中调用这种方法,如果置为True,则跳过模块中剩余的部分,也就是说其值为True

本文详细介绍了Pytest的Markers特性,包括内置的skip、skipif、xfail和parametrize标记,讲解了它们的用途、参数和使用示例。通过自定义标记,可以更灵活地组织和控制测试用例。了解如何利用Markers提升测试效率和定制化测试流程。
最低0.47元/天 解锁文章
1231

被折叠的 条评论
为什么被折叠?



