Python单元测试框架之pytest 3 -- fixtures
From: https://www.cnblogs.com/fnng/p/4769020.html
Python单元测试框架之pytest -- fixtures
2015-08-29 13:05 by 虫师, 10695 阅读, 0 评论, 收藏, 编辑
fixtures不太好翻译,可看作是夹心饼干最外层的两片饼干。通常用setup/teardown来表示。它主要用来包裹测试用例,为什么需要这样的饼干呢?我们以web自动化测试为例,例如,要测试的某系统需要登录/退出。那么每一条用例执行前都需要登录,执行完又都需要退出,这样每条用例重复编写登录和退出就很麻烦,当然,你也可以把登录和退出封装为方法调用,但是每个用例中都写调用也很麻烦。有了fixtures就变得简便很多。
测试函数
创建test_fixtures.py文件

#coding=utf-8
import pytest # 功能函数
def multiply(a,b):
return a * b # =====fixtures========
def setup_module(module):
print ("\n")
print ("setup_module================>") def teardown_module(module):
print ("teardown_module=============>") def setup_function(function):
print ("setup_function------>") def teardown_function(function):
print ("teardown_function--->") # =====测试用例========
def test_numbers_3_4():
print 'test_numbers_3_4'
assert multiply(3,4) == 12 def test_strings_a_3():
print 'test_strings_a_3'
assert multiply('a',3) == 'aaa' if __name__ == '__main__':
pytest.main("-s test_fixtures.py")

运行结果:

============================= test session starts =============================
platform win32 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.2
rootdir: D:\pyse\pytest, inifile:
plugins: html
collected 2 items test_fixtures.py setup_module================>
setup_function------>
test_numbers_3_4
.teardown_function--->
setup_function------>
test_strings_a_3
.teardown_function--->
teardown_module=============> ========================== 2 passed in 0.01 seconds ===========================

通过执行结果,相信就很容易弄清楚它们的执行顺序。
setup_module/teardown_module 在所有测试用例执行之后和之后执行。
setup_function/teardown_function 在每个测试用例之后和之后执行。
测试类

#coding=utf-8
import pytest # 功能函数
def multiply(a,b):
return a * b class TestUM: # =====fixtures======== def setup(self):
print ("setup----->") def teardown(self):
print ("teardown-->") def setup_class(cls):
print ("\n")
print ("setup_class=========>") def teardown_class(cls):
print ("teardown_class=========>") def setup_method(self, method):
print ("setup_method----->>") def teardown_method(self, method):
print ("teardown_method-->>") # =====测试用例======== def test_numbers_5_6(self):
print 'test_numbers_5_6'
assert multiply(5,6) == 30 def test_strings_b_2(self):
print 'test_strings_b_2'
assert multiply('b',2) == 'bb' if __name__ == '__main__':
pytest.main("-s test_fixtures.py")

运行结果:

============================= test session starts =============================
platform win32 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.2
rootdir: D:\pyse\pytest, inifile:
plugins: html
collected 2 items test_fixtures.py setup_class=========>
setup_method----->>
setup----->
test_numbers_5_6
.teardown-->
teardown_method-->>
setup_method----->>
setup----->
test_strings_b_2
.teardown-->
teardown_method-->>
teardown_class=========> ========================== 2 passed in 0.00 seconds ===========================

setup_class/teardown_class 在当前测试类的开始与结束执行。
setup/treadown 在每个测试方法开始与结束执行。
setup_method/teardown_method 在每个测试方法开始与结束执行,与setup/treadown级别相同。
Python单元测试框架之pytest 3 -- fixtures的更多相关文章
- Python单元测试框架之pytest 4 -- 断言
From: https://www.cnblogs.com/fnng/p/4774676.html Python单元测试框架之pytest -- 断言 2015-08-31 23:57 by 虫师, ...
- Python单元测试框架之pytest 2 -- 生成测试报告
From: https://www.cnblogs.com/fnng/p/4768239.html Python单元测试框架之pytest -- 生成测试报告 2015-08-29 00:40 by ...
- Python单元测试框架之pytest -- 断言
对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就 ...
- Python单元测试框架:pytest
(一)介绍 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手: 2.支持参数化: 3.能够支持简单的单元测试和复杂的功能测试,还可以用来做sele ...
- Python单元测试框架之pytest -- 生成测试报告
继续pytest单元测试框架的学习,pytest可以生成多种类型的测试报告.这一节就来学习pytest如何生成测试报告. 创建test_calss.py 测试用例文件,这里以测试该文件为例. #cod ...
- Python单元测试框架之pytest 1 ---如何执行测试用例
From: https://www.cnblogs.com/fnng/p/4765112.html 介绍 pytest是一个成熟的全功能的Python测试工具,可以帮助你写出更好的程序. 适合从简 ...
- Python单元测试框架之pytest -- fixtures
fixtures不太好翻译,可看作是夹心饼干最外层的两片饼干.通常用setup/teardown来表示.它主要用来包裹测试用例,为什么需要这样的饼干呢?我们以web自动化测试为例,例如,要测试的某系统 ...
- python单元测试框架笔记
目录 单元测试概述 什么是单元测试 单元测试什么进行? 单元测试由谁负责? 单元测试需要注意 单元测试覆盖类型 python 单元测试框架 unittest pytest 测试框架 单元测试概述 什么 ...
- [译]PyUnit—Python单元测试框架(1)
1. 原文及参考资料 原文链接:http://docs.python.org/2/library/unittest.html# 参考文档: http://pyunit.sourceforge.net/ ...
随机推荐
- dubbo ActivateExtension
对于集合类扩展点,比如:Filter, InvokerListener, ExportListener, TelnetHandler, StatusChecker等, 可以同时加载多个实现,此时,可以 ...
- Sublime 修改快捷键
Preferences-Key Bindings-User 添加一行: { "keys": ["ctrl+d"], "command": & ...
- [LeetCode&Python] Problem 100. Same Tree
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
- 区块链与Git版本工具的比较
区块链与Git版本工具的比较 来源:http://www.jianshu.com/p/b96b98983df6 作者: 梁波林 相同点: 1. 分布式存储方案 2. 链式数据 3. 去中心化 4. ...
- hello1.java内容简单介绍
双击该Hello.java文件以查看它. 在Hello类,称为管理bean类,提供了getter和setter方法name中的Facelets页面表达式中使用属性.默认情况下,表达式语言引用类名,第一 ...
- 2017.7.11 linux 挂载
挂载:Liunx采用树形的文件管理系统,也就是在Linux系统中,可以说已经没有分区的概念了.分区在Linux和其他设备一样都只是一个文件.要使用一个分区必须把它加载到文件系统中.这可能难于理解,继续 ...
- Kafka设计解析:Kafka High Availability
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永远不能再恢复,亦 ...
- 使用JQuery提交表单的两种方式选择
有一个表单,如果使用JQuery提交的话,可以使用下面2中方式,但他们的区别却是根据实际需求需要进行选择的. 第一种:表单按照action路径提交后,页面会刷新. $("#id") ...
- linux运维注意事项
防火墙和selinux一定要注意 服务器或应用出现错误是一定要查看服务器运行状态是否正确,及其相关运行日志 不管什么时候,能不要特殊字符就不要用特殊字符,避免不必要的错误 在看部署文档的时候一定要认真 ...
- Eclipse无法编译,提示错误“找不到或者无法加载主类”解决方法
jar包问题: 1.项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包, 解决办法是:将这个不可用的jar包remo ...