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--->

# 如下的用例打印前后未執行初始化和清除操作
上海多測師
.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM