博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)
阅读量:4546 次
发布时间:2019-06-08

本文共 2919 字,大约阅读时间需要 9 分钟。

pytest的setup和teardown函数(曾被一家云计算面试官问到过)。

pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作。与python自带的unitest测试框架中的setup、teardown类似,但是fixture函数对setup和teardown进行了很大的改进。

  • fixture函数可以使用在测试函数中,测试类中,测试文件中以及整个测试工程中。
  • fixture支持模块化,fixture可以相互嵌套
  • fixture支持参数化
  • fixture支持unittest类型的setup和teardown

1)模块级(setup_module/teardown_module)开始于模块始末:在所有测试用例开始执行setup_module和所有用例执行结束后执行teardown_module

2)类级(setup_class/teardown_class)开始于类的始末:在当前测试类的开始与结束执行

3)类里面的(setup/teardown)(运行在调用函数的前后)

4)功能级(setup_function/teardown_function)开始于功能函数始末(不在类中):用于每个测试用例开始执行时执行setup_function和在每个用例执行结束后执行teardown_function

5)方法级(setup_method/teardown_method)开始于方法始末(在类中):在每个测试方法开始与结束执行

1 def setup_module(module): 2     print("setup_module module:%s" % module.__name__) 3 4 5 def teardown_module(module): 6 print("teardown_module module:%s" % module.__name__) 7 8 9 def setup_function(function): 10 print("setup_function function:%s" % function.__name__) 11 12 13 def teardown_function(function): 14 print("teardown_function function:%s" % function.__name__) 15 16 17 def test_numbers_3_4(): 18 print('test_numbers_3_4 <============================ actual test code') 19 assert 3 * 4 == 12 20 21 22 def test_strings_a_3(): 23 print('test_strings_a_3 <============================ actual test code') 24 assert 'a' * 3 == 'aaa' 25 26 27 class TestUM: 28 def setup(self): 29 print("setup class:TestStuff") 30 31 def teardown(self): 32 print("teardown class:TestStuff") 33 34 def setup_class(cls): 35 print("setup_class class:%s" % cls.__name__) 36 37 def teardown_class(cls): 38 print("teardown_class class:%s" % cls.__name__) 39 40 def setup_method(self, method): 41 print("setup_method method:%s" % method.__name__) 42 43 def teardown_method(self, method): 44 print("teardown_method method:%s" % method.__name__) 45 46 def test_numbers_5_6(self): 47 print('test_numbers_5_6 <============================ actual test code') 48 assert 5 * 6 == 30 49 50 def test_strings_b_2(self): 51 print('test_strings_b_2 <============================ actual test code') 52 assert 'b' * 2 == 'bb'

好好观察一下运行结果:

setup_module      module:test_pytest_setup_teardown

setup_function    function:test_numbers_3_4
test_numbers_3_4  <============================ actual test code
.teardown_function function:test_numbers_3_4
setup_function    function:test_strings_a_3
test_strings_a_3  <============================ actual test code
.teardown_function function:test_strings_a_3
setup_class       class:TestUM
setup_method      method:test_numbers_5_6
setup             class:TestStuff
test_numbers_5_6  <============================ actual test code
.teardown          class:TestStuff
teardown_method   method:test_numbers_5_6
setup_method      method:test_strings_b_2
setup             class:TestStuff
test_strings_b_2  <============================ actual test code
.teardown          class:TestStuff
teardown_method   method:test_strings_b_2
teardown_class    class:TestUM
teardown_module   module:test_pytest_setup_teardown

 

转载于:https://www.cnblogs.com/ranxf/p/7766229.html

你可能感兴趣的文章
Android学习笔记——ProgressBar
查看>>
Flume的监控参数
查看>>
第三天记录
查看>>
Centos下关于ssh、scp与rsync设置与应用
查看>>
排列组合+组合数取模 HDU 5894
查看>>
WCF(一) 创建第一个WCF
查看>>
hdu 6206 apple 点在内接圆外
查看>>
Jquery实现图片自动轮播
查看>>
第一篇:groovy对DSL的语法支持
查看>>
idea Cannot open URL.Please check this URL is correct
查看>>
(转载)C#使用MemoryStream类读写内存
查看>>
自我表水
查看>>
sqlserver中的数据转换与子查询
查看>>
【CF316G3】Good Substrings 后缀自动机
查看>>
【BZOJ2938】[Poi2000]病毒 AC自动机+DFS
查看>>
【BZOJ4750】密码安全 单调栈
查看>>
Java之atomic包的原理及分析
查看>>
Chrome自定义滚动条
查看>>
poj3311(状态压缩dp)
查看>>
《大数据日知录》读书笔记-ch2数据复制与一致性
查看>>