pytest使用教程
pytest使用教程一、pytest框架1.1 pytest简介pytest是Python生态中最强大、最流行的自动化测试框架具有以下特点简洁语法使用原生assert语句无需记忆复杂的断言方法自动发现自动识别测试文件和测试函数强大的fixture依赖注入机制实现测试前后置处理丰富的插件生态覆盖HTML报告、并行执行、覆盖率等场景良好的兼容性可直接运行unittest用例1.2 安装方式# 基础安装pipinstallpytest# 安装常用插件pipinstallpytest-html pytest-xdist pytest-rerunfailures1.3 命名规则pytest采用约定优于配置的设计测试用例需遵守以下命名规范类型规则示例测试文件test_*.py或*_test.pytest_login.py,login_test.py测试函数test_开头def test_login_success()测试类Test开头不含__init__class TestLogin:1.4 编写第一个测试用例# test_sample.pydefadd(a,b):returnabdeftest_add_positive_numbers():assertadd(2,3)5deftest_add_negative_numbers():assertadd(-1,-1)-2classTestMathOperations:deftest_multiply(self):assert2*361.5 运行测试# 运行当前目录下所有测试pytest# 运行指定文件pytest test_sample.py# 运行指定函数pytest test_sample.py::test_add_positive_numbers# 运行指定类的方法pytest test_sample.py::TestMathOperations::test_multiply1.6 常用命令行参数参数作用示例-v显示详细信息pytest -v-s显示print输出pytest -s-x失败即停止pytest -x--lf只运行上次失败的用例pytest --lf-k按关键字筛选pytest -k add-m按标记筛选pytest -m smoke--htmlreport.html生成HTML报告pytest --htmlreport.html-n auto多线程并行执行pytest -n auto1.7 断言用法deftest_assertions():# 基本断言assert11asserthelloinhello worldassert105# 断言异常withpytest.raises(ZeroDivisionError):10/0# 断言包含特定消息的异常withpytest.raises(ValueError,matchinvalid):raiseValueError(invalid value)1.8 Fixture夹具1.8.1 基本用法importpytestpytest.fixturedeflogin_user():返回登录用户数据return{username:test,password:123456}deftest_login(login_user):usernamelogin_user[username]passwordlogin_user[password]assertusernametest1.8.2 Fixture作用域作用域生命周期适用场景function每个测试函数临时数据class每个测试类类级共享状态module每个测试文件数据库连接session整个测试会话WebDriver实例pytest.fixture(scopesession)defbrowser():driverwebdriver.Chrome()yielddriver driver.quit()1.8.3 带清理的Fixturepytest.fixturedefdb_connection():创建数据库连接测试后自动关闭conncreate_connection()yieldconn conn.close()1.8.4 conftest.pyconftest.py是pytest的特殊文件放在该文件中的fixture无需导入即可全局使用# tests/conftest.pyimportpytestpytest.fixture(scopesession)defbase_url():returnhttps://api.example.compytest.fixture(scopefunction)defauth_token():returnBearer test-token1.9 参数化测试importpytestpytest.mark.parametrize(username,password,expected,[(admin,123456,True),(admin,wrong,False),(nonexistent,123456,False),(,123456,False),])deftest_login_parametrized(username,password,expected):resultauthenticate(username,password)assertresultexpected1.10 测试标记importpytestpytest.mark.smokedeftest_login():passpytest.mark.regressiondeftest_checkout():passpytest.mark.skip(reason功能尚未实现)deftest_feature_not_implemented():passpytest.mark.xfail(reason已知bug)deftest_known_bug():pass运行带标记的测试pytest-msmoke# 只运行冒烟测试pytest-mnot slow# 排除慢速测试1.11 生成测试报告# HTML报告pytest--htmlreports/test_report.html# Allure报告需安装allure-pytestpipinstallallure-pytest pytest--alluredirreports/allure_results allure serve reports/allure_results1.12 实战示例API接口测试# test_api.pyimportpytestimportrequestspytest.fixturedefapi_client():returnrequests.Session()pytest.fixturedefbase_url():returnhttps://jsonplaceholder.typicode.comclassTestUserAPI:deftest_get_users(self,api_client,base_url):responseapi_client.get(f{base_url}/users)assertresponse.status_code200assertisinstance(response.json(),list)deftest_get_user_by_id(self,api_client,base_url):responseapi_client.get(f{base_url}/users/1)assertresponse.status_code200userresponse.json()assertuser[id]1assertnameinuserdeftest_create_user(self,api_client,base_url):payload{name:Test User,email:testexample.com}responseapi_client.post(f{base_url}/users,jsonpayload)assertresponse.status_code201created_userresponse.json()assertcreated_user[name]payload[name]

相关新闻

视频实时翻译软件各国视频声音翻译生成字幕神器音视频转文字字幕小工具效果测试支持100多种语言

视频实时翻译软件各国视频声音翻译生成字幕神器音视频转文字字幕小工具效果测试支持100多种语言

大家好,我是大飞哥。看外语视频的时候,你是不是也经常因为没有字幕而看得一头雾水?想给自己拍的口播视频加字幕,又得一句一句听写,一段几分钟的视频能折腾一两个小时。市面上的在线转文字工具不是收费就是限制时长&…

2026/7/28 5:33:23 阅读更多 →
视频处理器 v1.2功能强大的导入视频蒙版文件视频横屏转竖屏处理工具

视频处理器 v1.2功能强大的导入视频蒙版文件视频横屏转竖屏处理工具

大家好,我是大飞哥。做短视频的朋友都知道,现在的短视频平台基本都是竖屏(9:16)的天下,但很多高质量的素材——电影片段、课程录像、游戏画面、老视频素材——偏偏都是横屏(16:9)的。直接拉伸吧…

2026/7/26 8:45:52 阅读更多 →
模拟电路设计:PSRR与PSMR电源噪声抑制指标解析

模拟电路设计:PSRR与PSMR电源噪声抑制指标解析

1. 电源噪声抑制指标的本质差异在模拟电路设计中,PSRR(Power Supply Rejection Ratio)和PSMR(Power Supply Modulation Ratio)这两个指标常常让工程师感到困惑。它们虽然都与电源噪声相关,但反映的是完全不…

2026/7/27 16:12:26 阅读更多 →

最新新闻

常用排序算法时间复杂度和空间复杂度

常用排序算法时间复杂度和空间复杂度

均按从小到大排列 k代表数值中的"数位"个数 n代表数据规模 m代表数据的最大值减最小值

2026/7/28 18:54:19 阅读更多 →
C++ nullptr与界面开发:类型安全实践与内存管理详解

C++ nullptr与界面开发:类型安全实践与内存管理详解

1. 项目概述:为什么今天还要深究nullptr与界面开发?最近在带新人做项目,发现一个挺有意思的现象:很多刚学完C基础语法的朋友,简历上写着“熟悉C”,但一上手实际项目,面对一个简单的界面按钮点击…

2026/7/28 18:54:19 阅读更多 →
人脸检测论文:LFFD: A Light and Fast Face Detector for Edge Devices及其PyTorch实现

人脸检测论文:LFFD: A Light and Fast Face Detector for Edge Devices及其PyTorch实现

LFFD: A Light and Fast Face Detector for Edge Devices 论文链接:https://arxiv.org/pdf/1904.10633.pdf Pytorch代码: https://github.com/shanglianlm0525/PyTorch-Networks Pytorch代码 import torch import torch.nn as nndef Conv1x1ReLU(in_channels,out_channels):r…

2026/7/28 18:54:19 阅读更多 →
论文写作全流程实战:从开题到查重的解决方案

论文写作全流程实战:从开题到查重的解决方案

1. 论文写作困境全记录:从开题被否到终稿通关 那天收到导师的开题否决邮件时,我正坐在图书馆三楼靠窗的位置。电脑屏幕上红色的批注触目惊心:"选题缺乏创新性"、"研究框架不清晰"、"参考文献质量不足"——这三…

2026/7/28 18:54:19 阅读更多 →
自然语言生成图表技术解析:NL2Chart在智能BI中的架构设计与实现

自然语言生成图表技术解析:NL2Chart在智能BI中的架构设计与实现

摘要 传统BI工具要求使用者具备数据素养——理解数据模型、掌握维度/指标概念、熟悉图表类型。这让大量业务人员被挡在数据分析的门槛之外。自然语言生成图表(NL2Chart)技术通过大模型理解用户意图,自动生成SQL查询并渲染可视化图表&#xf…

2026/7/28 18:54:19 阅读更多 →
什么是集装箱数据中心?

什么是集装箱数据中心?

过去几十年,数据中心给人的印象一直是一栋大型建筑,里面排列着密密麻麻的服务器机柜,配套复杂的供电、制冷、消防和网络系统。无论是互联网企业、金融机构,还是大型企业的信息化建设,都需要提前规划场地、建设机房、部署设备。 但随着云计算、大数据、人工智能和边缘计算…

2026/7/28 18:53:19 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻