自动化测试框架Pytest No.2(Pytest:setup和teardown函数)

本文详细介绍了 Pytest 自动化测试框架中不同级别的 setup 和 teardown 函数的使用,包括模块级、函数级、类级以及方法级。这些函数分别在测试的不同阶段执行,用于初始化和清理工作,确保测试的准确性和独立性。通过实例代码展示了各个级别的执行顺序和作用范围。
摘要由CSDN通过智能技术生成

自动化测试框架Pytest No.2

Pytest的setupteardown函数

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)运行在调用方法的前后

setup、teardown函数存在于测试类内部

  • 模块级别
import pytest

def setup_module():
    print("------>setup_module")

def teardown_module():
    print("----->teardown_module")

class Test_2:

    def test_a(self):
        print("----->test_a")
        assert 1

    def test_b(self):
        print("----->test_b")

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

在这里插入图片描述

  • 函数级别
import pytest

# 模块级开始
def setup_module():
    print("------>setup_module")

# 模块级结束
def teardown_module():
    print("----->teardown_module")

# 函数级开始
def setup_function():
    print("----->setup_function")

# 函数级结束
def teardown_function():
    print("----->teardown_function")

def test_a():
    print("----->test_a")
    assert 1

def test_b():
    print("----->test_b")
    assert 1

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

在这里插入图片描述

  • 类级别

运行于测试类的始末:在一个测试内只运行一次setup_class和teardown_class,不关心测试类内有多少个测试函数。

import pytest

class Test_2:

    #类级别开始
    def setup_class(self):
        print("----->setup_class")

    #类级别结束
    def teardown_class(self):
        print("----->tesrdown_class")

    def test_a(self):
        print("----->test_a")
        assert 1

    def test_b(self):
        print("----->test_b")

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

在这里插入图片描述

  • 类里面的

运行于测试方法的始末:运行一次测试函数会运行一次setup和teardown

import pytest

class Test_2:

    # 函数级开始
    def setup(self):
        print("----->setup_method")

    # 函数级结束
    def teardown(self):
        print("----->teardown_mrthod")

    def test_a(self):
        print("----->test_a")
        assert 1

    def test_b(self):
        print("----->test_b")

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

请添加图片描述

  • 模块、类、方法、函数
import pytest

# 模块级别开始
def setup_module():
    print("------>setup_module")

# 模块级别结束
def teardown_module():
    print("----->teardown_module")

class Test_2:

     #类级别开始
     def setup_class(self):
         print("----->setup_class")

     #类级别结束
     def teardown_class(self):
         print("----->tesrdown_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_a(self):
        print("----->test_a")
        assert 1

     def test_b(self):
        print("----->test_b")

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

在这里插入图片描述

import pytest

# 模块级开始
def setup_module():
    print("------>setup_module")

# 模块级结束
def teardown_module():
    print("----->teardown_module")

# 函数级开始
def setup_function():
    print("----->setup_function")

# 函数级结束
def teardown_function():
    print("----->teardown_function")

def test_a():
    print("----->test_a")
    assert 1

def test_b():
    print("----->test_b")
    assert 1

class Test_2:

     #类级别开始
     def setup_class(self):
         print("----->setup_class")

     #类级别结束
     def teardown_class(self):
         print("----->tesrdown_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_c(self):
         print("----->test_c")
         assert 1

     def test_d(self):
         print("----->test_d")
         assert 1

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值