从0开始python学习-34.pytest常用插件
目录
1. pytest-html:生成HTML测试报告
2.pytest-xdist:并发执行用例
3. pytest-order:自定义用例的执行顺序
4. pytest-rerunfailures:用例失败时自动重试
5. pytest-result-log:用例执行结果记录到日志文件
1. pytest-html:生成HTML测试报告
文档:Installation — pytest-html documentation
安装:pip install pytest-html -U
运行:
ini中配置: addopts = --html ./report/report.html
main方法:pytest.main(['-vs','--html=./report/report.html'])
直接运行:pytest --html=./report/report.html --self-contained-html

2. pytest-xdist:并发执行用例
文档:https://pytest-xdist.readthedocs.io/en/stable/
安装:pip install pytest-xdist -U
运行:pytest -n {0,1,2,3,4,5.....n, auto},示例:pytest -n auto(auto可以自动检测到系统的CPU数量,使用auto等于就是使用所有的CPU来进行执行用例,此时CPU占有率很高)
注意:
1. 进程数量不要超过文件的数量,同一个文件中的用例,会在同一个进程中执行
2. 进程数量不要超过CPU的数量

pytest-xdist默认是无序执行的,可以通过 --dist 参数来控制顺序
--dist=loadscope:将按照同一个模块 module 下的函数和同一个测试类 class 下的方法来分组,然后将每个测试组发给可以执行的 worker,确保同一个组的测试用例在同一个进程中执行。目前无法自定义分组,按类 class 分组优先于按模块 module 分组
--dist=loadfile:按照同一个文件名来分组,然后将每个测试组发给可以执行的 worker,确保同一个组的测试用例在同一个进程中执行

3. pytest-order:自定义用例的执行顺序
文档:https://pytest-order.readthedocs.io/en/latest/
安装:pip install pytest-order -U
order后面的参数为大于等于0的正整数,可以不是顺序排的,只要排序数值之间有顺序就行
@pytest.mark.order(0)
def test_a():print('a')
@pytest.mark.order(7)
def test_b():print('b')
@pytest.mark.order(1)
def test_c():print('c')

4. pytest-rerunfailures:用例失败时自动重试
文档:https://github.com/pytest-dev/pytest-rerunfailures
安装: pip install pytest-rerunfailures -U
运行:--reruns n --reruns-delay m
--reruns n(重新运行次数),--reruns-delay m(下次测试重新开始之前等待的秒数)

5. pytest-result-log:用例执行结果记录到日志文件
文档:https://mp.weixin.qq.com/s/cp3rdKJb0Eglz0jIhZ6ZHw
安装:pip install pytest-result-log -U
注意:-k未选中、skip跳过、fixture错误等原因,有没有执行的用例,无法在日志记录结果的
运行:ini中进行配置
; 日志保存目录
log_file = ./pytest.log
; 记录日志等级:1. CRITICAL:严重错误,表示系统无法继续运行。
;2. ERROR:错误,但不影响系统运行。
;3. WARNING:警告,表示存在可能会导致错误的情况。
;4. INFO:信息,用于记录系统运行过程中的重要信息。
;5. DEBUG:调试信息,用于记录详细的系统执行过程。
;6. NOTSET:没有设置日志等级,表示输出所有日志信息。
log_file_level = info
# 记录日志时间
log_file_format = %(levelname)-8s %(asctime)s [%(name)s:%(lineno)s] : %(message)s
log_file_date_format = %Y-%m-%d %H:%M:%S# 控制是否记录结果,1记录,0不记录
result_log = 1
# 控制是否记录分割线,1记录,0不记录
result_log_separator = 1相关文章:
从0开始python学习-34.pytest常用插件
目录 1. pytest-html:生成HTML测试报告 2.pytest-xdist:并发执行用例 3. pytest-order:自定义用例的执行顺序 4. pytest-rerunfailures:用例失败时自动重试 5. pytest-result-log:用例执行结果记录到日志文件 1. pytest-html…...
初始MySQL(二)(表的增删查改)
目录 修改表 CRUD(增删改查) insert语句(表中增加数据) update语句(修改表中的数据) delete删除语句 select语句 修改表 添加列 ALTER TABLE tablename ADD (column datatype [DEFAULT expr] [, column datatype] ...); 修改列 ALTER TABLE tablename MODIFY (column …...
SLAM从入门到精通(SLAM落地的难点)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在所有的slam算法中,基于反光柱的激光slam和基于二维码的视觉slam是落地最彻底的两种slam方法。和磁条、色带等传统导航方式相比较&…...
通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境
文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…...
职业迷茫,我该如何做好职业规划
案例25岁男,入职2月,感觉自己在混日子,怕能力没有提升,怕以后薪资也提不起来。完全不知道应该往哪个方向进修,感觉也没有自己特别喜欢的。感觉自己特别容易多想,想多年的以后一事无成的样子。 我觉得这个案…...
数据结构----顺序栈的操作
1.顺序栈的存储结构 typedef int SElemType; typedef int Status; typedef struct{SElemType *top,*base;//定义栈顶和栈底指针int stacksize;//定义栈的容量 }SqStack; 2.初始化栈 Status InitStack(SqStack &S){//初始化一个空栈S.basenew SElemType[MAXSIZE];//为顺序…...
web3 React Dapp书写订单 买入/取消操作
好 上文web3 前端dapp从redux过滤出 (我创建与别人创建)正在执行的订单 并展示在Table上中 我们过滤出了 我创建的 与 别人创建的 且 未完成 未取消的订单数据 这边 我们起一下 ganache 环境 ganache -d然后 我们项目 发布一下智能合约 truffle migrate --reset然…...
C++学习---信号处理机制、中断、异步环境
文章目录 前言信号处理signal()函数关于异步环境 信号处理函数示例raise()函数 前言 信号处理 关于信号,信号是一种进程间通信的机制,用于在程序执行过程中通知进程发生了一些事件。在Unix和类Unix系统中,信号是一种异步通知机制,…...
机器学习——奇异值分解案例(图片压缩-代码简洁版)
本想大迈步进入前馈神经网络 但是…唉…瞅了几眼,头晕 然后想到之前梳理的奇异值分解、主成分分析、CBOW都没有实战 如果没有实际操作,会有一种浮在云端的虚无感 但是如果要实际操作,我又不想直接调用库包 可是…如果不直接调包,感…...
【Go入门】面向对象
【Go入门】面向对象 前面两章我们介绍了函数和struct,那你是否想过函数当作struct的字段一样来处理呢?今天我们就讲解一下函数的另一种形态,带有接收者的函数,我们称为method method 现在假设有这么一个场景,你定义…...
Asp.Net Core 中使用配置文件
本文参考微软文档:ASP.NET Core 中的配置 ASP.NET Core 中的应用程序配置是使用一个或多个配置程序提供程序执行的。 配置提供程序使用各种配置源从键值对读取配置数据: 设置文件,例如 appsettings.json环境变量Azure Key VaultAzure 应用配…...
深入理解JVM虚拟机第二十四篇:详解JVM当中的动态链接和常量池的作用
大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻J…...
QGridLayout
QGridLayout QGridLayout 是 Qt 框架中的一个布局管理器类,用于在窗口或其他容器中创建基于网格的布局。 QGridLayout 将窗口或容器划分为行和列的网格,并将小部件放置在相应的单元格中。可以通过调整行、列和单元格的大小来控制布局的样式和结构。 以…...
万能在线预约小程序系统源码 适合任何行业在线预约小程序+预约到店模式 带完整的搭建教程
大家好啊,源码小编又来给大家分享啦!随着互联网的发展和普及,越来越多的服务行业开始使用在线预约系统以方便客户和服务管理。例如,美发店、健身房、餐厅等都可以通过在线预约系统提高服务效率,减少等待时间࿰…...
Leetcode 2935. Maximum Strong Pair XOR II
Leetcode 2935. Maximum Strong Pair XOR II 1. 解题思路2. 代码实现 题目链接:2935. Maximum Strong Pair XOR II 1. 解题思路 这一题又是一个限制条件下找“最大值”的问题,不过这里的最大值是XOR之后的最大值。 而要求XOR之后结果的最大值&#x…...
[直播自学]-[汇川easy320]搞起来(4)看文档 查找设备(续)
2023.11.12 周六 19:05 补充一下关于以太网查找设备,如果设置如下: 然后点击测试: 点击ping 如果设置如下: 测试和ping和上图一样。 这就设计的有点不大好了! 另…...
WebSphere Liberty 8.5.5.9 (四)
WebSphere Liberty 8.5.5.9 (四) [WebSphere Liberty 8.5.5.9]Linux 环境 ~$ unzip wlp-webProfile7-java8-linux-x86_64-8.5.5.9.zip ./ ~$ mkdir wlp-webProfile7-java8-8559 ~$ mv wlp ./wlp-webProfile7-java8-8559启动 WebSphere Liberty 8.5.5.9 服务 ~$ cd /home/tes…...
UE特效案例 —— 角色刀光
目录 一,环境配置 二,场景及相机设置 三,效果制作 刀光制作 地裂制作 击打地面炸开制作 一,环境配置 创建默认地形Landscape,如给地形上材质需确定比例;添加环境主光源DirectionalLight,设…...
11. EPIC定时器
11. EPIC定时器 EPIT定时器简介EPIT定时器结构分析EPIT 定时器相关寄存器EPITx_CREPITx_SREPITx_LR 加载寄存器EPITx_CMPR 比较寄存器EPITx_CNR 计数寄存器 EPIT 配置步骤 例程代码编写bsp_epittimer.hbsp_epittimer.cmain.c EPIT定时器简介 EPIT定时器是增强的周期中断定时器…...
git-bash配置代理
git-bash命令提交执行命令: "git push origin main"时发生错误: “$ git push origin main fatal: unable to access ‘https://github.com/satadriver/locust_server.git/’: Failed to connect to github.com port 443 after 21035 ms: Couldn’t connect to serve…...
深入FreeRTOS SMP调度器:主核与从核如何“默契配合”完成第一次任务切换?
深入FreeRTOS SMP调度器:主核与从核如何“默契配合”完成第一次任务切换? 在嵌入式系统开发中,实时操作系统(RTOS)的多核支持已成为提升性能的关键。FreeRTOS作为业界广泛采用的RTOS,其SMP(对称…...
半监督3D医学图像分割(四):URPC在鼻咽癌GTV分割中的高效应用
1. 为什么URPC在鼻咽癌GTV分割中表现突出 鼻咽癌肿瘤靶区(GTV)分割是放疗规划中的关键步骤,传统方法依赖医生手动勾画,耗时且易受主观影响。URPC(Uncertainty Rectified Pyramid Consistency)作为半监督3D医…...
别再乱传props了!UniApp项目里用Vuex管理用户登录和购物车状态,保姆级配置流程
UniApp实战:用Vuex重构用户登录与购物车状态管理 每次看到项目里十几个组件层层传递props,我都忍不住想吐槽——这简直就像用快递员接力运送同一份外卖!特别是在处理用户登录状态和购物车数据时,这种"击鼓传花"式的状态…...
WinDbg实战:手把手教你用!dpcwatchdog和!dpcs命令揪出Windows蓝屏元凶
WinDbg实战:用!dpcwatchdog和!dpcs命令精准定位DPC蓝屏问题 当你的Windows系统突然蓝屏,屏幕上赫然显示着"DPC_WATCHDOG_VIOLATION"错误代码时,那种无力感可能让任何技术从业者都感到沮丧。这种蓝屏错误通常意味着系统在调度延迟过…...
打字不如说话,说话不如截图——AI 代码助手的多模态输入实践偈
整体排查思路 我们的目标是验证以下三个环节是否正常: 登录成功时:服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端:浏览器是否成功接收并存储了该Cookie。 后续请求:浏览器在执行查询等操作…...
Agent Harness:AI Agent 时代那个「缺失的操作系统层」
文章目录前言当"最强大脑"得了"失忆症"Agent Harness:给AI装上"操作系统"Harness都管哪些事儿?1. 工具编排(Tool Orchestration)2. 记忆与状态持久化(Memory & State)3.…...
5. 你是怎么理解ES6中 Promise的?使用场景?
一、先给面试官一个结论版如果面试官问 "你怎么理解 Promise?" ,不要上来就背 API。 更好的开场是先说本质:Promise 是 ES6 引入的一种用于处理异步操作的解决方案。 它的核心价值是:把异步操作的最终结果(成…...
ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现妆
前言 Kubernetes 本身并不复杂,是我们把它搞复杂的。无论是刻意为之还是那种虽然出于好意却将优雅的原语堆砌成 鲁布戈德堡机械 的狂热。平台最初提供的 ReplicaSets、Services、ConfigMaps,这些基础组件简单直接,甚至显得有些枯燥。但后来我…...
【限时开源】:我们刚交付的三级医院FHIR适配引擎源码(C#/.NET 6+),含动态Profile加载、术语服务桥接、差量同步模块——仅开放72小时
第一章:FHIR适配引擎在三级医院信息系统的战略定位与开源意义FHIR适配引擎并非简单的协议转换中间件,而是三级医院实现跨系统互操作、支撑国家健康医疗大数据平台对接、满足《医疗卫生机构网络安全管理办法》与《电子病历系统功能应用水平分级评价标准》…...
一道KMP统考真题彻底讲透:nextval与滑动距离的本质我
一、各自优势和对比 这是检索出来的数据,据说是根据第三方评测与企业数据,三款产品在代码生成质量上各有侧重: 产品 语言优势 场景亮点 核心差异 百度 Comate C核心代码质量第一;Python首生成率达92.3% SQL生成准确率提升35%&…...
