pytest的setup和teardown

学过unittest的setup和teardown,前置和后置执行功能。pytest也有此功能并且功能更强大,今天就来学习一下吧。

1|0用例运行级别:

  • 模块级(setup_module/teardown_module)开始于模块始末,全局的

  • 函数级(setup_function/teardown_function)只对函数用例生效(不在类中)

  • 类级(setup_class/teardown_class)只在类中前后运行一次(在类中)

  • 方法级(setup_method/teardown_method)开始于方法始末(在类中)

  • 类里面的(setup/teardown)运行在调用方法的前后

2|0demo1:

import pytest # 函数式 def setup_function(): print("setup_function") def teardown_function(): print("teardown_function") def setup_module(): print('setup_module') def teardown_module(): print('teardown_module') def test_one(): print("正在执行----test_one") def test_two(): print("正在执行----test_two") def test_three(): print("正在执行----test_three") if __name__ == "__main__": pytest.main(["-s", "test_api.py"])

3|0结果:

 

 setup_module只开头运行一次,teardown_module只结束运行一次,setup_function每次运行用例都执行一次,teardown_function每次用例结束都执行一次。

4|0demo2:

import pytest # 函数式 class TestCase(): def setup_class(self): print("setup_class") def teardown_class(self): print("teardown_class") def setup_method(self): print('setup_method') def teardown_method(self): print('teardown_method') def setup(self): print('setup') def teardown(self): print('teardown') def test_one(self): print("正在执行----test_one") def test_two(self): print("正在执行----test_two") def test_three(self): print("正在执行----test_three") if __name__ == "__main__": pytest.main(["-s", "test_api.py"])

5|0结果:

 

 setup_class只开头执行一次,teardown_class只结束执行一次,setup_method和setup都是在用例执行之前分别执行,setup_method的优先级高于setup,teardown_method和teardown也是同理

运行的优先级:setup_class》setup_method》setup 》用例》teardown》teardown_method》teardown_class


__EOF__

本文作者Harry
本文链接https://www.cnblogs.com/harry66/p/13374584.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Harry_666  阅读(245)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示