一、unittest和pytest框架对⽐:
二、pytest常⽤运⾏参数:
-s 参数 ⽤于关闭捕捉,从⽽输出打印信息到控制台
-v 参数 ⽤于显⽰具体的⽤例执⾏信息
指定⽬录以及特定类或⽅法执⾏
pytest.main(['-s','./doc/test_112233.py::TestDemo::test_case_03'])
'在第N个⽤例失败之后,结束测试执⾏'
pytest.main(['--maxfail=2'])
'通过标记表达式执⾏'
pytest.main(['-m','smoke'])
'多进程运⾏⽤例'
pip install pytest-xdist
'将测试执⾏发送到多个cpu'
# pytest.main(['-n','2','test_many.py'])
'使⽤与计算机具有cpu内核⼀样多的进程'
pytest.main(['-n', 'auto', 'test_many.py'])
'重新运⾏失败⽤例'
pip install pytest-rerunfailures
'重新运⾏所有测试失败⽤例'
pytest.main(['--reruns', '3', 'test_rerun.py'])
'在每次重跑之间,增加⼀次延迟时间'
pytest.main(['--reruns', '3','--reruns-delay','2','test_rerun.py'])
三、Pytest⾼阶⽤法之函数数据参数化
⽅法: parametrize(argnames, argvalues, indirect=False, ids=None, scope=None)
常⽤参数:
argnames:参数名
argvalues:参数对应值,类型必须为list 当参数为⼀个时格式:[value] 当参数个数⼤于⼀个时,格式为:[(param_value1,param_value2.....), (param_value1,param_value2.....)]
使⽤⽅法:@pytest.mark.parametrize(argnames,argvalues)
参数值为N个,测试⽅法就会运⾏N次
四、Pytest之Fixture介绍
五、Conftest.py
六、Conftest.py+fixture+yield 实现⽤例前置后置
import pytest
@pytest.fixture()
def fix1():
print("\n开始执⾏fix1")
yield
print("\n结束执⾏fix1")
def test01(fix1):
print("test01")
print(fix1)
assert 1 == 1