news 2026/6/23 10:06:20

Pytest的测试用例相关问题总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Pytest的测试用例相关问题总结

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

失败重跑 Pytest-rerunfailures

要求:python 3.5+、pytest 5.0+

安装:pip install pytest-rerunfailures

文档:https://pypi.org/project/pytest-rerunfailures/

使用方法:在命令行或 pytest.ini 配置文件 addopts 中添加选项:–reruns n(重新运行n次数),–reruns-delay m(等待m秒开始下次重新运行):

(1)命令行:pytest --reruns 3 --reruns-delay 5;

(2)pytest.ini 文件:addopts = --reruns 3 --reruns-delay 5

若要指定单个测试用例在失败时重新运行,需要在测试用例添加 flaky 装饰器,如:@pytest.mark.flaky(reruns=n, reruns_delay=m)。

@pytest.mark.flaky(reruns=2, reruns_delay=3) def test_01(): assert 0
用例执行顺序 Pytest-ordering

默认情况下,Pytest 根据测试方法从上到下执行用例,可以通过第三方插件 Pytest-ordering 来改变测试顺序。

安装:pip install pytest-ordering

文档:https://pypi.org/project/pytest-ordering/

使用方法:在需要调整执行顺序的测试函数上标记@pytest.mark.run(order=x)order 值越小,优先级越高;执行顺序按照如下排序:0 > 正数 > 未使用run修饰的 > 负数。

import pytest @pytest.mark.run(order=3) def test_01(): print("test_01") assert 1 @pytest.mark.run(order=2) def test_02(): print("test_02") assert 1 @pytest.mark.run(order=-1) def test_03(): print("test_03") assert 1 # 以上用例将按照 test_02 -> test_01 -> test_03 顺序执行
重复执行 Pytest-repeat

安装:pip install pytest-repeat

使用方法:在命令行或 pytest.ini 配置文件 addopts 中添加选项:

–count n(重复运行n次数)

–repeat-scope 可以覆盖默认的测试用例执行顺序,类似 fixture 的scope参数

function:默认,范围针对每个用例重复执行,再执行下一个用例

class:以class为用例集合单位,重复执行class里面的用例,再执行下一个

module:以模块为单位,重复执行模块里面的用例,再执行下一个

session:重复整个测试会话,即所有测试用例的执行一次,然后再执行第二次:

(1)命令行:pytest --count 5

(2)pytest.ini 文件:addopts = --count 5

通常与 pytest 的 -x 搭配使用,重复测试直到失败,常用于验证一些偶现的问题,命令行运行:pytest --count=10 -x test_demo.py:

# test_demo.py 文件 import pytest @pytest.mark.repeat(10) # 将指定测试用例标记为执行重复多次 def test_01(): assert 1
多重断言 Pytest-assume

assert断言可以写多个断言,但一个失败,后面的断言将不再执行,可以使用 pytest-assume 来进行断言,即使断言失败,后面的断言还是会继续执行,比 assert 更高效。

安装:pip install pytest-assume。

import pytest def test_01(): pytest.assume(1==1) pytest.assume(2==2) pytest.assume(1==0) pytest.assume(3==3) print("测试完成")

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 22:42:17

many-notes终极指南:告别笔记混乱,打造高效知识管理系统

many-notes终极指南:告别笔记混乱,打造高效知识管理系统 【免费下载链接】many-notes Markdown note-taking app designed for simplicity 项目地址: https://gitcode.com/gh_mirrors/ma/many-notes 还在为笔记散落各处而烦恼吗?&…

作者头像 李华
网站建设 2026/6/22 18:53:37

视频降噪新境界:用ffmpeg-python轻松打造电影级画质

视频降噪新境界:用ffmpeg-python轻松打造电影级画质 【免费下载链接】ffmpeg-python Python bindings for FFmpeg - with complex filtering support 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpeg-python 还在为视频中的噪点烦恼吗?ffmpe…

作者头像 李华
网站建设 2026/6/20 16:38:08

利用Wan2.2-T2V-A14B构建专业级AI视频SaaS平台

利用Wan2.2-T2V-A14B构建专业级AI视频SaaS平台 你有没有想过,只需要一句话——比如“一只白鸽从夕阳下的钟楼飞过”,就能自动生成一段720P高清、动作流畅、光影自然的视频?这不再是科幻,而是今天已经可以落地的技术现实。&#x1…

作者头像 李华
网站建设 2026/6/22 23:25:43

汽车空调系统应用的高边驱动器

在汽车空调系统中,从控制面板、压缩机、PTC加热器到鼓风机,各类执行器与传感器协同工作,共同调节车内的温度、湿度与风量。而将这些部件高效、安全联结的核心,正是空调控制器。它不仅接收用户指令,更需实时监控环境&am…

作者头像 李华
网站建设 2026/6/22 19:48:21

gorm Expr使用小技巧

基于实际项目经验,我整理了一些GORM Expr 的实用技巧,涵盖从基础到进阶的多种场景:一、核心用法:原子操作Expr 最经典的场景是实现数据库层面的原子计算,避免并发问题:go复制// 库存扣减(高并发…

作者头像 李华