首页 > 其他分享 >pytest的setup和teardown

pytest的setup和teardown

时间:2023-09-13 18:55:23浏览次数:33  
标签:用例 teardown setup test pytest print def

setupteardown函数可以分别在每个测试用例之前和之后执行,以确保测试环境的准备和清除工作。通过合理使用这两个函数,您可以有效地提高测试效率,并且避免测试用例之间的相互干扰。

 

Pytest - setup 和 teardown
执行用例肯定有些需要前置条件或后置操作,例如前置的用户登陆,后置的清理数据等操作;

unittest提供了两种前置(setup、setupClass)和两种后置(teardown、teardownClass);

相比之下,pytest 提供了十种 setup 和 teardown 方法:

模块级别:setup_module、teardown_module

函数级别:setup_function、teardown_function,不在类中的方法

类级别:setup_class、teardown_class

方法级别:setup_method、teardown_method

用例级别:setup、teardown

 

test_py.py

import pytest
def setup_module(): print("\n!!!! setup_module > 整个.py模块开始前只执行一次:打开浏览器/获取cookie !!!!")
def teardown_module(): print("!!!! teardown_module > 整个.py模块结束后只执行一次:关闭浏览器 !!!!")
def setup_function(): print("\n### setup_function > 每个函数级别用例开始前都执行 ###")
def teardown_function(): print("### teardown_function > 每个函数级别用例结束后都执行 ###")
def test_one(): print("test case 1")
def test_two(): print("test case 2")
class TestCase(): def setup_class(self): print("\n^^^ setup_class > 整个测试类开始前只执行一次 ^^^")
def teardown_class(self): print("^^^ teardown_class > 整个测试类结束后只执行一次 ^^^")
def setup_method(self): print("\n=== setup_method > 类里面每个用例执行前都会执行 ===")
def teardown_method(self): print("=== teardown_method > 类里面每个用例结束后都会执行 ===")
def setup(self): print("--- setup > 类里面每个用例执行前都会执行 ---")
def teardown(self): print("--- teardown > 类里面每个用例结束后都会执行 ---")
def test_three(self): print("test case 3") def test_four(self): print("test case 4") if __name__ == '__main__': pytest.main(["-q", "-s", "-ra", "test_py.py"])

 



原文链接:https://blog.csdn.net/m0_70618214/article/details/130953075

标签:用例,teardown,setup,test,pytest,print,def
From: https://www.cnblogs.com/may18/p/17700461.html

相关文章

  • Jenkins windows 下 'pytest' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    问题现象: 解决:     ......
  • pytest运行警告问题解决:DeprecationWarning: pkg_resources is deprecated as an API
    前言最近在运行pytest的时候,经常出现这个警告DeprecationWarning:pkg_resourcesisdeprecatedasanAPISeehttps://setuptools.pypa.io/en/latest/pkg_resources.htmlfrompkg_resourcesimportiter_entry_points从警告上看是方法被弃用,肯定是因为新版弃用了旧版的语法。......
  • live555做流媒体服务器时解决rtp over udp模式下, 客户端没有发送teardown时直接关闭
    在我们使用live555作为RTSP服务器时,客户端在rtpoverudp模式下,rtsp客户端没有发送teardown而直接断开连接时需要等待65秒才回调关闭的问题。分析问题在RTSPClientConnection中没有保存相应的session值,所以在RTSPClientConnection断开时,并没有删除相应的RTSPClientSession;解......
  • Vue3实战06-CompositionAPI+<script setup>好在哪?
    Vue3的CompositionAPI+<scriptsetup>这种最新的代码组织方式。<scriptsetup>是啥?为啥尤大在微博强推?本文就使用CompositionAPI和<scriptsetup>重构第2讲的清单应用。重构过程将明白,CompositionAPI让我们更好组织代码结构,<scriptsetup>本质是更精简方式写Compositi......
  • Vue3实战06-CompositionAPI+<script setup>好在哪?
    Vue3的CompositionAPI+<scriptsetup>标签内定义的变量和函数,都可以在模板中直接使用。###1.2显示清单应用实现累加器后,回到src/pages/Home.vue组件,使用如下代码显示清单应用。直接importTodoList.vue组件,然后<scriptsetup>会自动把组件注册到当前组件,这样......
  • python+pytest+yam接口自动化
    分层设计项目下创建api、case、data、common(utils)目录:api下存放封装好的接口,case下放编写的测试用例,data下放测试数据,common下放公共操作(像连接数据库,读取yaml文件等)api下封装的登录接口:  case下对登录写的测试用例:用例设计的原则(pytest怎么去找的用例):文件名以test_*.py......
  • Vue3 setup 如何添加name
    Vue3setup如何添加name小满zs2022-11-2915:5810778 开启掘金成长之旅!这是我参与「掘金日新计划·12月更文挑战」的第2天,点击查看活动详情Vue3中name有什么用呢?1.在递归组件的时候需要定义name2.配合keep-aliveincludeexclude可以缓存组件3.在Vue有报错或......
  • pytest.mark.parametrize() 列表2
    yaml文件:--list_order-南京--list_order-北京--list_order-郑州--list_order-西安 代码:importjsonimportpprintimportpytestfromSlience.utils.login_utilimportLoginfromSlience.utils.request_utilimportSendReque......
  • pytest.mark.parametrize() 字典
    yaml文件-action:list_orderkeywords:南京-action:list_orderkeywords:郑州-action:list_orderkeywords:西安代码:importjsonimportpprintimportpytestfromSlience.utils.login_utilimportLoginfromSlience.utils.request_utilimpo......
  • pytest.mark.parametrize() 列表1
    yaml文件:-南京-北京-郑州-西安  代码:importjsonimportpprintimportpytestfromSlience.utils.login_utilimportLoginfromSlience.utils.request_utilimportSendRequestfromSlience.utils.yaml_utilimportread_yaml@pytest.fixture(scope=......