首页 > 其他分享 >pytest-setup/teardown

pytest-setup/teardown

时间:2024-08-14 10:26:41浏览次数:12  
标签:teardown setup 用例 pytest print 执行 def

Pytest提供了类似unittest的setup、teardown的方法,并且还超过四个,一共有十种

  • 模块级别:setup_module、teardown_module ---模块前置setup_module和后置teardown_module,放类外生效,整个.py模块开始前和结束后各调用一次
  • 函数级别:setup_function、teardown_function---函数前置setup_function和后置teardown_function,放类外且类外有函数用例时生效,每个用例开始前和结束后各调用一次
  • 类级别:setup_class、teardown_class---类前置setup_class和后置teardown_class,放类内生效,类开始前和结束后各执行一次
  • 方法级别:setup_method、teardown_method ---方法前置setup_method和后置teardown_method,放类内且类内有方法用例时才生效,每个用例开始前和结束后调用1次
  • 方法细化级别:setup、teardown---运行在调用方法前后

代码如下:

import pytest

def setup_module():
    print("=====整个.py模块开始前只执行一次:打开浏览器=====")

def teardown_module():
    print("=====整个.py模块结束后只执行一次:关闭浏览器=====")

def setup_function():
    print("===每个函数级别用例开始前都执行setup_function===")

def teardown_function():
    print("===每个函数级别用例结束后都执行teardown_function====")

def test_one():
        print("one")

def test_two():
        print("two")

class TestCase():
    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 setup(self):
        print("=类里面每个用例执行前都会执行setup=")

    def teardown(self):
        print("=类里面每个用例结束后都会执行teardown=")

    def test_three(self):
        print("three")

    def test_four(self):
        print("four")

if __name__ == '__main__':
    pytest.main(["-q", "-s", "-ra", "setup_test.py"])

结果如下

============================= test session starts =============================
collecting ... collected 4 items

xxxx.py::test_one =====整个.py模块开始前只执行一次:打开浏览器=====
===每个函数级别用例开始前都执行setup_function===
PASSED                                                 [ 25%]one
===每个函数级别用例结束后都执行teardown_function====

xxxx.py::test_two ===每个函数级别用例开始前都执行setup_function===
PASSED                                                 [ 50%]two
===每个函数级别用例结束后都执行teardown_function====

xxxx.py::TestCase::test_three ====整个测试类开始前只执行一次setup_class====
==类里面每个用例执行前都会执行setup_method==
=类里面每个用例执行前都会执行setup=
PASSED                                     [ 75%]three
=类里面每个用例结束后都会执行teardown=
==类里面每个用例结束后都会执行teardown_method==

xxxx.py::TestCase::test_four ==类里面每个用例执行前都会执行setup_method==
=类里面每个用例执行前都会执行setup=
PASSED                                      [100%]four
=类里面每个用例结束后都会执行teardown=
==类里面每个用例结束后都会执行teardown_method==
====整个测试类结束后只执行一次teardown_class====
=====整个.py模块结束后只执行一次:关闭浏览器=====


============================== 4 passed in 0.04s ==============================



标签:teardown,setup,用例,pytest,print,执行,def
From: https://www.cnblogs.com/qev211/p/18358376

相关文章

  • 解决Pytest UnknownMarkWarning: Unknown pytest.mark.single - is this a typo?
    解决PytestUnknownMarkWarning:Unknownpytest.mark.single-isthisatypo?出现截图所示问题前提:1.项目中使用了mark标记:@pytest.mark.single2.同时项目中包含pytest.ini文件并进行了pytest.ini配置运行项目运行时报出截图所示Warning解决方法:切换运行项......
  • vue3 setup语法糖详解与使用
    Vue3+TypeScript系列笔记6.setup语法糖详解与使用语法糖(SyntacticSugar),是由英国计算机科学家彼得·约翰·兰达(PeterJ.Landin)发明的一个术语。它指的是在计算机语言中添加的某种语法,这种语法对语言的编译结果和功能并没有实际影响,但却能更方便程序员使用该语言。简单来......
  • 为什么“pytest_addoption”钩子不使用配置的“testpaths”运行?
    摘要:我正在尝试使用pytest_addoption功能设置自定义pytest选项。但是当在使用所述自定义选项时尝试使用project.toml文件配置我的项目时,我得到出现以下错误:$pytest--foofooERROR:usage:pytest[options][file_or_dir][file_or_dir]......
  • 【已解决】戴尔 Inspiron 5457 和 5557 启动报错:Invalid configuration information -
    场景我使用的是戴尔15-5557的笔记本电脑,在某次开机的时候系统提示:Invalidconfigurationinformation-pleaserunSETUPprogram.虽然的点击Continue可以正常进入系统,但是每次开机都要来上这么一下真的很烦人,于是想着解决一下。试错过程1.BIOS调整刚开始以为是自己BIOS......
  • 配置 Pytest 以跨多个项目目录查找测试
    我希望使用pytest对项目中的所有AWSLambda代码进行单元测试。由于我必须配置目录结构才能与基础设施即代码工具一起使用,每个Lambda都位于它自己的CloudFormation堆栈中,因此我有一个相当非标准的目录结构。我无法让pytest在我的所有Lambda函数中运行所有测试-理想......
  • 有没有办法阻止 setUp() 为 python 测试用例中的每个测试方法启动浏览器?
    我正在练习编写Web自动化测试用例,并且编写了一些函数来测试登录、在用户主页中查找我的用户名以及测试GitHub的注销功能。然而,我通过经验和阅读了解到setUp()是在每个测试方法之前启动的,而我的问题是在每个测试方法之前它都会打开一个新的浏览器。我希望我的所有测......
  • Pytest 找不到我的设置目录
    我尝试启动pytest,但pytest找不到设置文件我在virtualenv中Python3.11.9和pytest8.3.2ImportError:Nomodulenamed'drf.settings'pytest-djangocouldnotfindaDjangoproject(nomanage.pyfilecouldbefound).Youmustexplicitlyadd......
  • Tox 中的 Pytest - 找不到测试,`ImportError`
    我有一个具有当前结构的包:my_package|-pyproject.toml|-poetry.lock|-tox.ini|-my_package||-__init__.py||-my_package.py|-tests|-test_my_package.pypyproject.toml为pytest配置如下:[tool.pytest.ini_option......
  • 如何在 pytest 的参数化中传递函数名称以及如何在测试用例中使用它?
    在下面的脚本中,我想参数化函数调用RegisterClientCabinMovementDetection(x)和RegisterClientOccupantInSeatDetection(x)(在脚本中以粗体显示)等等...有没有办法在pytest中参数化函数?@[email protected]('Qf,预期',[(UNDEFINED,"无效"),(INPROGR......
  • 从pytest源码的角度分析pytest工作原理
    从pytest源码的角度分析pytest工作原理从pytest源代码的角度来分析其工作原理,我们需要关注几个关键的部分,特别是pytest的启动过程以及测试的收集与执行。下面是基于pytest源代码的一个高层次的概述。 pytest的启动过程命令行解析:pytest 的入口点是 conftest.p......