Pytest - setup 和 teardown
Pytest - setup 和 teardown
-
执行用例肯定有些需要前置条件或后置操作,例如前置的用户登陆,后置的清理数据等操作;
-
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 pytest def 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】
-
分类:
Pytest
标签:
Python-自动化测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?