目录
前言:
pytest 是一个广泛使用的 Python 测试框架。它具有强大的测试运行器、测试驱动开发和测试结果可视化等功能。除此之外,pytest 还支持许多第三方插件,这些插件可以为测试带来更多的便利和功能。
本文只介绍pytest-ordering
、pytest-rerunfailures
、pytest-xdist
三种插件,报告方面的插件会另起篇幅进行介绍。
顺序执行:pytest-ordering
- 安装:
pip install pytest-ordering
- 使用方式:在方法上加入下面装饰器
- 标记于被测试函数,@pytest.mark.run(order=x)
- 根据 order 传入的参数来解决运行顺序
- order 值全为正数或全为负数时,运行顺序:值越小,优先级越高
- 正数和负数同时存在:正数优先级高
默认情况下,pytest 是根据测试方法名由小到大执行的,可以通过第三方插件包改变其运行顺序。
# test_abc.py
#默认执行方式
#示例:
import pytest
class Test:
def test_a(self):
print("------->test_a")
assert 1
def test_b(self):
print("------->test_b")
assert 0
if __name__ == '__main__':
pytest.main(["-s","test_abc.py"])
#执行结果:
test_abc.py
------->test_a # 默认第一个运行
.
------->test_b # 默认第二个运行
F
改变顺序后
#示例:
import pytest
class Test:
@pytest.mark.run(order=2)
def test_a(self):
print("------->test_a")
assert 1
@pytest.mark.run(order=1)
def test_b(self):
print("------->test_b")
assert 0
if __name__ == '__main__':
pytest.main(["-s","test_abc.py"])
#执行结果:
test_abc.py
------->test_b # order=1 优先运行
F
------->test_a # order=2 晚于 order=1 运行
.
失败重试:pytest-rerunfailures
-
安装:
pip install pytest-rerunfailures
-
使用方式:pytest --reruns 重试次数 --reruns-delay 次数之间的延时设置(单位:秒)
比如:pytest --reruns 2 --reruns-dela