Pytest系列-测试用例前后置固件setup和teardown的介绍和使用(2)

简介

在unittest框架中,有两个前置方法,两个后置方法,还有两个模块方法,分别是

  • setup():每个用例执行之前都会自动调用
  • setupClass():在类中所有的测试方法执行前会自动执行的代码,只执行一次
  • teardown():每个用例执行之后都会自动调用
  • teardownClass():在类中所有的测试方法执行后会自动执行的代码,只执行一次

在类外部定义函数

  • setUpModule():模块级别在这个代码文件执行前执行一次
  • tearDownModule():模块级别在这个代码文件执行后执行一次

对于强大的pytest测试框架,给我们提供了10中类似方法:

  • 模块级别:setup_module、teardown_module
  • 函数级别:setup_function、teardown_function
  • 类级别:setup_class、teardown_class
  • 类方法级别:setup_method、teardown_method
  • 函数和方法级别:setup、teardown

Pytest中前后置固件的讲解及使用

模块级别:setup_module、teardown_module

说明 :该方法表示只能类外面执行用例过程中,只执行1次。相当于unittest中的setupclass和teardownclass方法

函数级别:setup_function、teardown_function

说明 :该方法表示在类外面执行用例过程中,每次都会执行前置和后置。

类级别:setup_class、teardown_class

说明 :该方法表示在类中执行测试用例前,只执行1次测试前置和测试后置,注意:放在类外面不生效

方法级别:setup_method、teardown_method

说明 :该方法表示在类中每次执行测试用例前,测试前置和测试后置都会执行一次,注意:放在类外面不生效

函数和方法级别:setup、teardown

说明 :该方法这个可以在类中使用,也可以在类外进行使用,大家最熟悉

多个方法组合使用

说明 :直接查看示例,查看各个方法执行优先级,非常重要

示例如下:

python 复制代码
import pytest

def setup_module():
    print("setup_module 类外前置方法")

def teardown_module():
    print("teatrdown_module 类外后置方法")

def setup_function():
    print("setup_function 类外前置方法")

def teardowm_function():
    print("teardown_function 类外后置方法")

def demo_01():
    print("类外面demo1")

def test_02():
    print("类外面demo2")

class TestDemo:
    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_01(self):
        print("类里面test1")

    def test_02(self):
        print("类里面test2")

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

结果

优先级为

setup_module>setup_function>setup>用例>teardown>teardown_function>teardown_module

setup_module>setup_class>setup_method>setup>用例>teardown>teardown_method>teardown_class>teardown_module

相关推荐
我的xiaodoujiao4 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 46--撰写 README项目说明文档文件
python·学习·测试工具·pytest
我的xiaodoujiao6 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 47--设置Selenium以无头模式运行代码
python·学习·selenium·测试工具·pytest
devmoon19 小时前
在 Paseo 测试网上获取 Coretime:On-demand 与 Bulk 的完整实操指南
开发语言·web3·区块链·测试用例·智能合约·solidity
workflower1 天前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
姚青&3 天前
Pytest 测试用例编写
测试用例·pytest
Warren983 天前
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析
功能测试·面试·单元测试·集成测试·pytest·postman·模块测试
测试杂货铺4 天前
软件测试面试题大全,你要的都在这。。
自动化测试·软件测试·python·功能测试·面试·职场和发展·测试用例
测试大圣4 天前
软件测试基础知识总结(超全的)
软件测试·python·功能测试·测试工具·职场和发展·单元测试·测试用例
程序员小远4 天前
UI自动化测试用例管理平台搭建
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例