日常测试过程中,经常需要对失败测试用例进行retry,此时可使用pytest-rerunfailures插件。另外也可以设置失败中止
1、失败重跑
安装:pip install pytest-rerunfailures
使用装饰器@pytest.mark.flaky()
rerun代表失败重跑的最大重试次数,reruns_delay代表等待时间
# 文件名:over.py
import pytest
@pytest.mark.flaky(reruns=3, reruns_delay=2)
def test001():
a = 1
print('-------------------------------------这是一个分割线-------------------------------------')
assert a == 0
if __name__ == '__main__':
pytest.main(['-s', 'over.py'])
命令行执行:
cd到py文件下执行
pytest --reruns 3 --reruns-delay 2 -s
效果是一样的
2、失败中止
一旦失败就终止
命令行执行:pytest -v -x test_002.py
或者执行:如下代码
# 文件名:test_002.py
import pytest
class TestTwo:
def test001(self):
assert 1 == 2
def test002(self):
assert 1 == 1
if __name__ == '__main__':
pytest.main(['-v', '-x', 'test_002.py'])
结果会提示 :
最多失败2次后终止
命令行:pytest --maxfail 2 文件名
或者执行:如下代码
# 文件名:test_002.py
import pytest
class TestTwo:
def test001(self):
assert 1 == 2
def test002(self):
assert 1 == 2
def test003(self):
assert 1 == 1
if __name__ == '__main__':
pytest.main(['-v', '--maxfail=2', 'test_002.py'])
结果会提示: