执行用例肯定有些需要前置条件或后置操作,例如前置的用户登陆,后置的清理数据等操作;
(相关资料图)
unittest提供了两种前置(setup、setupClass)和两种后置(teardown、teardownClass);
相比之下,pytest 提供了十种setup和 teardown方法:
模块级别:setup_module、teardown_module
函数级别:setup_function、teardown_function,不在类中的方法
类级别:setup_class、teardown_class
方法级别:setup_method、teardown_method
用例级别:setup、teardown
test_py.py
import pytestdef setup_module(): print("\n!!!! setup_module > 整个.py模块开始前只执行一次:打开浏览器/获取cookie !!!!")def teardown_module(): print("!!!! teardown_module > 整个.py模块结束后只执行一次:关闭浏览器 !!!!")def setup_function(): print("\n### setup_function > 每个函数级别用例开始前都执行 ###")def teardown_function(): print("### teardown_function > 每个函数级别用例结束后都执行 ###")def test_one(): print("test case 1")def test_two(): print("test case 2")class TestCase(): def setup_class(self): print("\n^^^ setup_class > 整个测试类开始前只执行一次 ^^^") def teardown_class(self): print("^^^ teardown_class > 整个测试类结束后只执行一次 ^^^") def setup_method(self): print("\n=== setup_method > 类里面每个用例执行前都会执行 ===") def teardown_method(self): print("=== teardown_method > 类里面每个用例结束后都会执行 ===") def setup(self): print("--- setup > 类里面每个用例执行前都会执行 ---") def teardown(self): print("--- teardown > 类里面每个用例结束后都会执行 ---") def test_three(self): print("test case 3") def test_four(self): print("test case 4")if __name__ == "__main__": pytest.main(["-q", "-s", "-ra", "test_py.py"]) 执行结果如图所示各级别(讲解顺序从上往下,级别从低到高):
黄色框:用例级别 【setup、teardown】
橙色框:方法级别【setup_method、teardown_method】
蓝色框:类级别【setup_class、teardown_class】
绿色框:函数级别【setup_function、teardown_function】
红色框:模块级别【setup_module、teardown_module】
下一篇:最后一页
中国天气网讯 今天(5月25日),南方降雨明显减弱,东北仍有雷雨,局地有暴雨。明天,南方雨水再度增强,北方降水减少减弱。月底前南方阴雨
中新网5月25日电 据中央气象台网站消息,预计,5月25日08时至26日08时,黑龙江东南部、吉林东部、辽宁东部、青海东南部、山东东部和南部、
中新网5月25日电 据北京卫健委官方微信消息,5月24日0时至24时,北京新增41例本土确诊病例(含4例无症状感染者转确诊病例)和6例无症状感染
中新网5月25日电 据上海卫健委官方微信消息,2022年5月24日0—24时,上海新增本土新冠肺炎确诊病例44例和无症状感染者343例,其中32例确诊
中国天气网讯 今天(5月25日),北京以晴天为主,最高气温在30℃左右,不过全市风力明显,大部地区有4级左右的北风,阵风可达7~8级,防疫人