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构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的 ...
随机推荐
- linux 常用命令总结(tsg)
1.解压tar.gz 第一步:gunzip filename.tar.gz --->会解压成.tar文件 第二步:tar xvf FileName.tar ---->会解压到当前文件夹2. ...
- 在input文本框中存入对象格式的数据
<input id="teaching" type="hidden" name="teachingProgram" /> JQ: ...
- 05.Curator分布式锁
锁:分布式的锁全局同步,这意味着任何一个时间点不会有两个客户端都拥有相同的锁. 1.可重入锁Shared Reentrant Lock 首先我们先看一个全局可重入的锁(可以多次获取,不 ...
- CentOS设置PPTP拨号连接远程服务器
本次测试在Ucloud云服务器从香港连接至广州服务器 1,环境及配置查看 2,安装ppp,pptp,pptp-setup包 yum install -y ppp pptp pptp-setup 3,使 ...
- SignalR循序渐进(三)简易的集群通讯组件
上一篇演示了泛型Hub的实现,微软于6月17日更新了SignalR 2.1.0,然后自带了泛型Hub,于是就不需要自己去实现了…(微软你为啥不早一个月自带啊…).不过没关系,SignalR出彩之处不在 ...
- 设计模式之——迭代器模式
设计模式是开发者前辈们给我们后背的一个经验总结.有效的使用设计模式,能够帮助我们编写可复用的类.所谓"可复用",就是指将类实现为一个组件,当一个组件发生改变时,不需要对其他组件进行 ...
- java基础 01
java基础01 1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Ru ...
- Python并行编程(八):with语法
1.基本概念 当有两个相关的操作需要在一部分代码块前后分别执行的时候,可以使用with语法自动完成.同时,使用with语法可以在特定的地方分配和释放资源,因此,with语法也叫作"上下文管理 ...
- Mybatis框架学习总结-Mybatis框架搭建和使用
Mybatis介绍 Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.Mybatis可以使 ...
- 前端 Dom 直接选择器
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...