python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)
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
python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)的更多相关文章
- 【Pytest】python单元测试框架pytest简介
1.Pytest介绍 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高.根据pytest的官方网站介绍 ...
- python单元测试框架pytest
首先祝大家国庆节日快乐,这个假期因为我老婆要考注会,我也跟着天天去图书馆学了几天,学习的感觉还是非常不错的,这是一篇总结. 这篇博客准备讲解一下pytest测试框架,这个框架是当前最流行的python ...
- python单元测试框架——pytest
官网:https://docs.pytest.org/en/latest/ pytest帮你写出更好的程序 1.An example of a simple test:(一个简单的例子),命名为tes ...
- Python单元测试框架pytest常用测试报告类型
先前博客有介绍pytest测试框架的安装及使用,现在来聊聊pytest可以生成哪些测试报告 1.allure测试报告 关于allure报告参见先前的一篇博文:https://www.cnblogs.c ...
- Python单元测试框架之pytest 4 -- 断言
From: https://www.cnblogs.com/fnng/p/4774676.html Python单元测试框架之pytest -- 断言 2015-08-31 23:57 by 虫师, ...
- Python单元测试框架之pytest 3 -- fixtures
From: https://www.cnblogs.com/fnng/p/4769020.html Python单元测试框架之pytest -- fixtures 2015-08-29 13:05 b ...
- Python单元测试框架之pytest 2 -- 生成测试报告
From: https://www.cnblogs.com/fnng/p/4768239.html Python单元测试框架之pytest -- 生成测试报告 2015-08-29 00:40 by ...
- python单元测试框架笔记
目录 单元测试概述 什么是单元测试 单元测试什么进行? 单元测试由谁负责? 单元测试需要注意 单元测试覆盖类型 python 单元测试框架 unittest pytest 测试框架 单元测试概述 什么 ...
- Python单元测试框架
目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的 ...
随机推荐
- IOS实现打电话后回调
本文转载至 http://blog.csdn.net/cerastes/article/details/38340687 UIWebView *callWebview =[[UIWebView a ...
- echarts x轴坐标文字显示不全
在echarts中应用柱状图或者折线图时,当数据量过多的时候,X轴的坐标就会显示不全(如下图图一),在ECharts图表组件内部有一个机制,用于统计xAxis坐标刻度的个数和图表宽度,从而会自动调整刻 ...
- php文件
php文件系统函数: http://www.w3school.com.cn/php/php_ref_filesystem.asp
- LVS,HAPROXY,NGINX各自的优缺点
Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件. LVS:使用集群技术和Linux操作系统实现一个高性能.高可用的服务器,它具有很好的可伸缩性.可靠性和可管理性,是一款强大 ...
- hdu1575 Tr A 矩阵快速幂模板题
hdu1575 TrA 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1575 都不需要构造矩阵,矩阵是题目给的,直接套模板,把对角线上的数相加就好 ...
- Golang开发支持平滑升级(优雅重启)的HTTP服务
Golang开发支持平滑升级(优雅重启)的HTTP服务 - tabalt的博客 http://tabalt.net/blog/graceful-http-server-for-golang/ http ...
- LeetCode_Add Two Numbers
题目: You are given two linked lists representing two non-negative numbers. The digits are stored in r ...
- 使用Standford coreNLP进行中文命名实体识别
因为工作需要,调研了一下Stanford coreNLP的命名实体识别功能. Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的. 先附上其官网链 ...
- Django-vue之emement-ui,绑定图片,页面挂载,路由跳转
一 emement-ui使用 首先在终端下载安装:npm install element-ui 在vue项目中的main.js下: import ElementUI from 'element-ui ...
- 007-Hadoop Hive sql语法详解2-修改表结构
一.表 更改表名:ALTER TABLE table_name RENAME TO new_table_name 增加表的元数据信息:ALTER TABLE table_name SET TBLPRO ...