pytest控制用例执行顺序
pytest正常情况下的用例方法执行顺序是从上到下,可以通过pytest-ordering
插件来控制用例方法的执行顺序
# 安装pytest-oredering(窝定)插件
pip install pytest-ordering
pytest-ordering的使用方法
# 在测试方法上加装饰器即可
@pytest.mark.run(order=x) # x是整数(可以是正数也可以是负数)
# 全为正数或负数时,值越小,优先级越高
# 既有正数又有负数时,正数优先级高(-1,2,-3的执行顺序是2,-3,-1)
快速把用例方法放在第一个执行
# 第一个执行
@pytest.mark.tryfirst # 未验证
@pytest.mark.first
@pytest.mark.run('first')
# 0是正整数中最小的,优先级最高
@pytest.mark.run(order=0)
# 两个0是,就按照正常顺序执行
快速把用例方法放在最后执行
# 最后一个执行
@pytest.mark.trylast # 未验证
@pytest.mark.last
@pytest.mark.run('last')
@pytest.mark.run(order=-1)
第二个执行
# 第二个执行
@pytest.mark.second
@pytest.mark.run('second')
@pytest.mark.run(order=1)
倒数第二个执行
# 倒数第二个执行
@pytest.mark.second_to_last
@pytest.mark.run('second_to_last')
@pytest.mark.run(order=-2)
加了@pytest.mark.last之后执行用例可能会报错.
解决放法1:
在pytest.ini
配置文件中的addopts
中添加 --disable-warnings
参数
解决方法2:
在pytest.ini
配置文件中的addopts
中添加‘-p no:warnings’参数