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---> # 如下的用例打印前后未執行初始化和清除操作 上海多測師 .