pytest 学习 - 01 setup与teardown
前言
与unitest一样,python也拥有前置(setup)、后置操作(teardown)操作,而且更加的灵活
setup与teardown介绍
1. 模块级别(setup_module / teardown_module)模块始末,全局的(优先最高)
2. 函数级(setup_function / teardown_function)只对函数用例生效 (不在类中)
3. 类级 (setup_class / teardown_class)只在类中前后运行一次 (在类中)
4. 方法级 (setup_method / teardown_method)开始于方法始末 (在类中)
5. 类里面 (setup / teardown)运行在调用方法的前后
案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | import pytest def setup_module(): print ( "模块级别的setup_module" ) def teardown_module(): print ( "模块级别的teardown_module" ) def setup_function(): print ( "函数级别的setup_function" ) def teardown_function(): print ( "函数级别的teardown_function" ) def test_login(): print ( "这是一个外部的方法" ) assert "测栈云" = = "测栈云" class TestDemo: def setup_class( self ): print ( "类级别的setup_class" ) def teardown_class( self ): print ( "类级别的teardown_class" ) def setup( self ): print ( "这是一个setup" ) def teardown( self ): print ( "这是一个teardown" ) def test_a( self ): assert 1 = = 1 def test_b( self ): assert 2 = = 2 def test_c( self ): assert 3 = = 3 if __name__ = = '__main__' : pytest.main() = = = = = = = = = = = = = = = = = = = = = = = = = = = = = test session starts = = = = = = = = = = = = = = = = = = = = = = = = = = = = = collecting ... collected 4 items main.py::test_login 模块级别的setup_module 函数级别的setup_function PASSED [ 25 % ]这是一个外部的方法 函数级别的teardown_function main.py::TestDemo::test_a 类级别的setup_class 这是一个setup PASSED [ 50 % ]这是一个teardown main.py::TestDemo::test_b 这是一个setup PASSED [ 75 % ]这是一个teardown main.py::TestDemo::test_c 这是一个setup PASSED [ 100 % ]这是一个teardown 类级别的teardown_class 模块级别的teardown_module = = = = = = = = = = = = = = = = = = = = = = = = 4 passed, 6 warnings in 0.05s = = = = = = = = = = = = = = = = = = = = = = = = |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?