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

相关推荐
IT_xiao小巫2 天前
AI 实践探索:辅助生成测试用例
人工智能·测试用例
程序员小远2 天前
UI自动化测试方案详解
自动化测试·软件测试·selenium·测试工具·ui·职场和发展·测试用例
bjwuzh3 天前
使用pytest实现参数化后,控制台输出的日志是乱码
pytest
2025年一定要上岸4 天前
pytest框架 - 第二集 allure报告
pytest
小冯的编程学习之路4 天前
【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)
c++·selenium·测试工具·jmeter·自动化·测试用例·postman
程序员三藏4 天前
软件测试之功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
头疼的程序员5 天前
allure生成测试报告(搭配Pytest、allure-pytest)
测试工具·pytest
程序员杰哥5 天前
自动化测试基础知识详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
文人sec5 天前
接口自动化测试设计思路--设计实战
python·https·单元测试·自动化·pytest
程序员小远6 天前
自动化测试与功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例