測試用例setup和teardown
阿新 • • 發佈:2018-11-22
1、用例執行級別:
模組級:所有用例開始前只執行一次,結束後只執行一次
# 模組級:setup_module/teardown_module import pytest def setup_module(): print("setup_module:整個.py模組只執行一次") print("比如:所有用例開始前只打開一次瀏覽器!") def teardown_module(): print("setup_module:整個.py模組只執行一次") print("比如:所有用例開始前只關閉一次瀏覽器!") def test_one(): print("正在執行——test_one") x="this" assert "h" in x def test_two(): print("正在執行——test_two") x="hello" assert hasattr(x,"check") def test_three(): print("正在執行——test_three") a="hello" b="hello world" assert a in b if __name__ == "__main__": pytest.main(["-s","test_modulesetUp.py"])
函式級:每個用例開始和結束呼叫一次
用例的執行順序是:
setup_function》用例1》teardown_function》,setup_function》用例2》teardown_function》,setup_function》用例3》teardown_function》
# 函式式:setup_function/teardown_function import pytest def setup_function(): print("setup_function:每個用例開始前都會執行!") def teardown_function(): print("setup_function:每個用例結束後都會執行!") def test_one(): print("正在執行——test_one") x="this" assert 'h' in x def test_two(): print("正在執行——test_two") x="hello" assert hasattr(x,"check") def test_three(): print("正在執行——test_three") a="hello" b="hello world" assert a in b if __name__=="__main__": pytest.main(["-s","test_functionsetUp.py"])
類級和方法級
執行順序:setup_class》setup_method》setup》用例》teardown》teardown_method》teardown_class
import pytest class TestCase(): def setup(self): print("1setup:每個用例開始前都執行!") def teardown(self): print("1teardown:每個用例結束後都執行!") def setup_class(self): print("2setup_class:所有用例執行之前") def teardown_class(self): print("2teardown_class:所有用例執行之後") def setup_method(self): print("3setup_method:每個用例執行之前") def teardown_method(self): print("3teardown_method:每個用例執行之後") def test_one(self): print("正在執行——test_one") x = "this" assert 'h' in x def test_two(self): print("正在執行——test_two") x = "hello" assert hasattr(x, "check") def test_three(self): print("正在執行——test_three") a = "hello" b = "hello world" assert a in b if __name__=="__main__": pytest.main(["-s","test_classsetUp.py"])
2、混合
setup_module/teardown_module優先順序最高、setup_class和setup_function不干涉