当前位置: 首页> 技术文章> Pytest 单元测试框架之初始化和清除环境

Pytest 单元测试框架之初始化和清除环境

1、方法级别初始化、清除

  • pytest 中的 setup 和 teardown

  • 在每个方法执行前后都会执行一次

  • 固定函数名称如下(函数名称不能写错

def setup(self):
    print("setup_function--->")

def teardown(self):
    print("teardown_function--->")
def setup_method(cls):
    print("setup_function--->")
    
def teardown_method(cls):
    print("teardown_function--->")
  • 实例如下

import pytest
class Test():
    def setup(self):
        print("setup_function--->")
        
    def teardown(self):    
        print("teardown_function--->")
        
    def test_01(self):    
        print("深圳多测师")    
        
    def test_02(self):   
        print("广州多测师")    
        
    def test_03(self):    
        print("上海多测师")
        
if __name__ == '__main__':
    pytest.main(["-s","test_demo1.py"])

# 结果如下test_demo1.py 

setup_function--->
深圳多测师
.teardown_function--->
setup_function--->
广州多测师
.teardown_function--->
setup_function--->
上海多测师
.teardown_function--->

 

2、模块级别初始化、清除

  • 分别在整个模块中所有类中的内容执行前后运行setup_module和teardown_module

  • 设置全局方法 def setup_module() 和 def teardown_module()

# 定义全局方法
def setup_module():
    print("setup_function--->")
    
def teardown_module():
    print("teardown_function--->")
    
class Test01():
    def test_01(self):        
        print("深圳多测师")  
          
    def test_02(self):    
        print("广州多测师")
        
class Test02():
    def test_03(self):    
        print("上海多测师")
        
# 结果如下collected 3 items
test_demo1.py 

setup_function--->
深圳多测师
.广州多测师
.上海多测师
.teardown_function--->

 

3、类级别初始化、清除

  • 在类中添加类方法 def setup_class(cls) 和 def teardown_class(cls)

  • 在定义了类方法 def setup_class(cls) 和 def teardown_class(cls) 的类中所有的用例执行前后只执行一次

class Test01():
    @classmethod    
    def setup_class(cls):    
        print("setup_function--->")

    @classmethod    
    def teardown_class(cls):   
        print("teardown_function--->") 
           
    def test_01(self):    
        print("深圳多测师")    
        
    def test_02(self):    
        print("广州多测师")
        
class Test02():
    def test_03(self):    
        print("上海多测师")
        
# 结果如下collected 3 items                                                                                            
test_demo1.py 

setup_function--->
深圳多测师
.广州多测师
.teardown_function---># 如下的用例打印前后未执行初始化和清除操作上海多测师
.

 

原文链接:多测师_郑sir - Pytest 单元测试框架之初始化和清除环境

上一篇: python对数据库的操作

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊