unittest 圖一 和 pytest 圖二 對比
setup()
setupClass()
teardown()
teardownClass()
模塊級別:setup_module梯嗽、teardown_module
函數(shù)級別:setup_function固蛾、teardown_function,不在類中的方法
類級別:setup_class蒙揣、teardown_class
方法級別:setup_method锻全、teardown_method
方法細化級別:setup庆亡、teardown
unittest
pytest
import pytest
def setup_module():
print("setup_module():在模塊最之前執(zhí)行匾乓,且只執(zhí)行一次")
def teardown_module():
print("teardown_module:在模塊之后執(zhí)行,且只執(zhí)行一次")
def setup_function():
print("setup_function():每個方法之前執(zhí)行")
def teardown_function():
print("teardown_function():每個方法之后執(zhí)行")
def test_1():
print("正在執(zhí)行用例1")
x = "this"
assert 'h' in x
class TestClass(object):
def setup_class(self):
print("setup_class(self):每個類之前執(zhí)行一次,只執(zhí)行一次")
def teardown_class(self):
print("teardown_class(self):每個類之后執(zhí)行一次,只執(zhí)行一次")
def test_A(self):
print("正在執(zhí)行用例A")
x = "this"
assert 'h' in x
def test_B(self):
print("正在執(zhí)行B")
assert 1 == 1
def test_2():
print("正在執(zhí)行用例2")
assert 1 == 1
if __name__ == "__main__":
pytest.main(["-q", "test_setup_teardown_pytest.py"])
可以看出 方法 和 類又谋,先出現(xiàn)的先執(zhí)行拼缝。
模塊 之前執(zhí)行setup_module(),模塊之后執(zhí)行teardown_module()
方法 之前執(zhí)行 setup_function()彰亥,方法之后執(zhí)行 teardown_function()
類之前執(zhí)行 setup_class(self) 咧七,類之后執(zhí)行teardown_class(self)
setup_module()
setup_function()
test_1
teardown_function()
setup_class(self)
test_A
test_B
teardown_class(self)
setup_function()
test_2
teardown_function()
teardown_module
main方法中的-q,為pytest打印測試用例的執(zhí)行結(jié)果級別任斋。