使用@pytest.mark装饰器来给用例分类
cmd命令执行pytest --mark
可以查看自带的mark标签
其中常用的标签有:
@pytest.mark.skip() 跳过用例
@pytest.mark.skipif() 满足条件跳过用例
@pytest.mark.parametrize() 实现参数化
@pytest.mark.usefixture() 使用fixture的函数
@pytest.mark.xfail() 标记失败
cmd运行的时候:
运行的时候使用-m,m是mark的意思,来运行某个或某些分类,-m参数支持python表达式,
用or实现多选的效果,
用not实现反选的效果
自定义标记mark
如@pytest.mark装饰器定义了p0,p1,p2的用例
@pytest.mark.p0
def test_a(add):
print('---用例a执行---')
@pytest.mark.p1
def test_b():
print('---用例b执行---')
@pytest.mark.p2
def test_c():
print('---用例c执行---')
(使用-s参数是可将print打印出来)
pytest test_1.py -s -m='p0' #只运行p0用例
pytest test_1.py -s -m='p0 or p1' #运行p0和p1用例
pytest test_1.py -s -m='not p0' #只运行非p0用例
另一种实现方式执行,文件中的main函数加
if __name__ == '__main__':
pytest.main(['-s', 'test_1.py',"-m=not runtest"])
cmd命令执行使用-v参数,注定的函数节点id:
pytest -v test_1.py::test_d #执行 test_1.py文件下的test_d用例
mark标记失败:
内部用pytest.xfail("")
外部用装饰@pytest.mark.xfail(condition=None, *, reason=None, raises=None, run=True, strict=False)