尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
第三:Pytest-setup/teardown的类型种类
一.简介1.unittest里面用前置和后置setup和teardown非常好用在每次用例开始前和结束后都去执行一次2.当然还有更高级的setupClass和teardownClass需配合classmethod装饰器一起使用2.1.在做selenium自动化的时候它的效率尤为突出可以只启动一次浏览器执行多个用例3.Pytest框架也有类似于setup和teardown的语法并且还不止这四个二.用例运行级别1.模块级setup_module/teardown_module开始于模块始末全局的2.函数级setup_function/teardown_function只对函数用例生效不在类中3.类级setup_class/teardown_class只在类中前后运行一次(在类中)4.方法级setup_method/teardown_method开始于方法始末在类中5.类里面的setup/teardown运行在调用方法的前后三.函数式(没有类)1.模块级:setup_module/teardown_module所有用例开始和结束时调用一次1.1.test_bjhg_class1.pyimportpytest# 函数式def setup_module(): print(setup_module整个.py模块只执行一次)print(比如所有用例开始前只打开一次浏览器)def teardown_module(): print(teardown_module整个.py模块只执行一次)print(比如所有用例结束只最后关闭浏览器)def setup_function(): print(setup_function每个用例开始前都会执行)def teardown_function(): print(teardown_function每个用例结束前都会执行)def test_one(): print(正在执行----test_one)xthisasserthinx def test_two(): print(正在执行----test_two)xhelloassert hasattr(x,check)def test_three(): print(正在执行----test_three)ahellobhello worldassert ainbif__name____main__:pytest.main([-s,test_bjhg_class1.py])1.2.运行结果2.函数级setup_function/teardown_function 每个用例开始和结束时调用一次2.1.test_bjhg_class1.pyimportpytest# 函数式def setup_function(): print(setup_function每个用例开始前都会执行)def teardown_function(): print(teardown_function每个用例结束后都会执行)def test_one(): print(正在执行----test_one)xthisasserthinx def test_two(): print(正在执行----test_two)xhelloassert hasattr(x,check)def test_three(): print(正在执行----test_three)ahellobhello worldassert ainbif__name____main__:pytest.main([-s,test_bjhg_class1.py])2.2.运行结果四.类和方法(有类)1.类级setup_class和teardown_class等价于Unittest里面的setupClass和teardownClass2.方法级setup_method/teardown_method3.类里面的setup/teardown和Unittest里面的setup/teardown是一样的功能4.test_bjhg_class1.pyimportpytest# 类和方法class TestCase(): def setup(self): print(setup: 每个用例开始前执行)def teardown(self): print(teardown: 每个用例结束后执行)def setup_class(self): print(setup_class所有用例执行之前)def teardown_class(self): print(teardown_class所有用例结束后执行)def setup_method(self): print(setup_method: 每个用例开始前执行)def teardown_method(self): print(teardown_method: 每个用例结束后执行)def test_one(self): print(正在执行----test_one)xthisasserthinx def test_two(self): print(正在执行----test_two)xhelloassert hasattr(x,check)def test_three(self): print(正在执行----test_three)ahellobhello worldassert ainbif__name____main__:pytest.main([-s,test_bjhg_class1.py])4.1.运行结果这里setup_method/teardown_method和setup/teardown功能是一样一般二者用其中一个即可4.1.1.建议使用setup_method/teardown_method五.函数和类混合(上面两种结合一起)1.如果一个.py的文件里面既有函数用例又有类和方法用例运行顺序又是怎样的呢2.test_bjhg_class1.pyimportpytest# 类和方法def setup_module(): print(setup_module整个.py模块只执行一次)print(比如所有用例开始前只打开一次浏览器)def teardown_module(): print(teardown_module整个.py模块只执行一次)print(比如所有用例结束只最后关闭浏览器)def setup_function(): print(setup_function每个用例开始前都会执行)def teardown_function(): print(teardown_function每个用例结束前都会执行)def test_one(): print(正在执行----test_one)xthisasserthinx def test_two(): print(正在执行----test_two)xhelloassert hasattr(x,check)class TestCase(): def setup_class(self): print(setup_class所有用例执行之前)def teardown_class(self): print(teardown_class所有用例执行之前)def test_three(self): print(正在执行----test_three)xthisasserthinx def test_four(self): print(正在执行----test_four)xhelloassert hasattr(x,check)if__name____main__:pytest.main([-s,test_bjhg_class1.py])3.其中setup_module/teardown_module的优先级是最大的4.然后函数里面用到的setup_function/teardown_function与类里面的setup_class/teardown_class互不干涉
RELATED

相关推荐

彻底搞懂 K8s 服务访问:ClusterIP、NodePort 流量机制

彻底搞懂 K8s 服务访问:ClusterIP、NodePort 流量机制

前言在 Kubernetes 集群中,Pod 是最小的部署单元,但 Pod 的生命周期是短暂的——当 Pod 发生故障或被重新调度时,其 IP 地址也会随之改变。这就带来一个问题:如果一组 Pod 需要对外提供稳定服务(例如 HTTP 服务&#x…

📅 2026/10/24 18:34:16
OpenClaw 2026配置核心:Tools/Skills/Gateway分层启用与全平台部署

OpenClaw 2026配置核心:Tools/Skills/Gateway分层启用与全平台部署

1. 项目概述:为什么2026年OpenClaw配置必须讲“分层启用”与“全平台部署”2026年,OpenClaw已不再是那个需要手动编译、改源码、查日志才能跑起来的实验性工具。它演进为一个真正面向个人开发者与中小团队的AI助手操作系统——核心能力不再藏在代码里&am…

📅 2026/8/25 11:01:34
通辽找铺转铺选哪家

通辽找铺转铺选哪家

在通辽,有不少商户面临着门市出租、出兑、转让的需求,而创业者们也急切地想要找到合适的本地商铺。过去,大家在处理这些事情时,往往得靠熟人打听消息,或者满大街去查看告示,不仅耗费时间和精力,…

📅 2026/9/29 7:37:10
MORE NEWS

更多资讯

📰

设计模式核心解析:六大原则、UML类图与五个高频模式

简介:王桂林撰写的《设计模式》PDF文档,面向希望系统掌握设计模式的软件开发者与在校学生。内容从设计模式的历史渊源讲起,介绍克里斯托弗亚历山大提出的模式语言以及GOF四位作者的经典著作,并系统讲解模式名称、问题、解决方案、…

📰

Java基础面试核心:JVM运行机制与高频易混概念详解

简介:一份面向Java后端与校招面试人群的2025版Java基础高频考题整理,聚焦虚拟机运行机制、字节码跨平台原理、JDK与JRE职责差异、Java与C在内存管理与继承上的区别,以及“编译与解释并存”等易混淆知识点,并梳理了从源代码到字节码…

📰

OLT配置手册实战:FTTx六类组网、语音组播与E1专线避坑

简介:华为OLT配置手册为华为公司发布的OLT设备配置指南,面向网络管理员、接入网工程师及备考相关认证的技术人员,帮助读者厘清OLT在宽带接入与业务承载中的配置逻辑。内容以实操示例为主线,专线部分覆盖QinQ VLAN、VLAN Stacking批…

📰

AI前沿 | 2026年10月24日:OpenAI 把前沿训练关进离线笼子——DNS 越界、11 天停摆与 Brotli 高危漏洞

AI前沿 | 2026年10月24日:OpenAI 把前沿训练关进离线笼子——DNS 越界、11 天停摆与 Brotli 高危漏洞 📖 首屏导读 本教程配套付费专栏:《大模型工程师修炼手记》 19.9 元(AI 编程 Agent 实战 本文同主题系统课程) …

📰

AI前沿 | 2026年10月24日:OpenAI 开放 Decisions API,输入每百万 Token 仅 0.1 美元——AI 开始“卖决定”而不是“卖建议”

AI前沿 | 2026年10月24日:OpenAI 开放 Decisions API,输入每百万 Token 仅 0.1 美元——AI 开始“卖决定”而不是“卖建议” 📖 首屏导读 本教程配套付费专栏:《大模型工程师修炼手记》 19.9 元(AI 编程 Agent 实战 …

📰

Ubuntu 18.04.6 装机排坑:Rufus、分区与网卡驱动

简介:这份PDF面向初次安装Ubuntu 18.04.6的个人用户、运维人员和装机爱好者,聚焦系统部署阶段常见故障的排查与解决。内容围绕启动盘制作、自定义分区、特定硬件驱动适配及常用软件安装展开,涵盖UEFI与MBR两种启动场景,并针对联想…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬