python中的测试框架


Posted in Python onNovember 13, 2020

一、测试常用规则

  • 一个测试单元必须关注一个很小的功能函数,证明它是正确的;
  • 每个测试单元必须是完全独立的,必须能单独运行。这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作。通常通过setUp()和setDown()方法处理;
  • 编写执行快速的测试代码。在某些情况下,测试需要加载复杂的数据结构,而且每次执行的时候都要重新加载,这个时候测试执行会很慢。因此,在这种情况下,可以将这种测试放置一个后台的任务中。
  • 在编写代码前执行完整的测试,而且在编写代码后再重新执行一次。这样能保证你后来编写的代码不会破坏任何事情;
  • 在提交代码前执行完整的测试;
  • 如果在开发期间被打断了工作,写一个打断的单元测试,关于你下一步将要开发的。当你回来工作时,你能知道上一步开发到的指针;
  • 单元测试函数使用长的而且具有描述性的名字。在正式执行代码中,可能使用square()或sqr()取名,但是在测试函数中,你必须取像test_square_of_number_2()、test_square_negativer_number()这些名字,这些名字描述更加清楚;
  • 测试代码必须具有可读性;
  • 单元测试对新进的开发人员来说是工作指南。

二、python常用的测试框架

1. unittest

unittest是Python内置的标准类库

unittest 和 JUnit类似,可以说是python的标准单元测试框架,所以有时也被人称为 PyUnit。它使用起来和xUnit 家族其他成员类似。 用的人也比较多。兼容 python2 以及python3 。

2、unittest2

unittest2 可以说是一个针对 unittest测试框架新特性的补丁。它很大程度上和unittest都类似。然后还添加了一些unittest没有的方法。

3、pytest

py.test是unittest的替代工具。

尽管它是一个功能丰富、灵活的测试框架,但是它的语法很简单。创建一个单元测试就像编写一个模块一样。相比unittest,实现相同的测试功能,py.test做的事情更少。
pytest 直接可以通过 @pytest.mark.parametrize 进行参数化,而unittest 则需要借助DDT。

4、nose

Nose是对unittest的扩展,使得python的测试更加简单。nose自动发现测试代码并执行,nose提供了大量的插件,比如测试输出的xUnitcompatible,覆盖报表等等。
基于Python的测试驱动开发实战 也有nose的用法: http://python.jobbole.com/81305/
还有一个特定就是,nose可以采用 @with_setup() 来定义方法的setup和teardown。

5、doctest

doctest模块会搜索那些看起来像交互式会话的 Python 代码片段,然后尝试执行并验证结果。

6、tox

最大的特色,是自动最测试环境的管理以及使用多个解析器配置进行测试。

tox的详细文档: http://testrun.org/tox/latest/

7、mock

unittest.mock是用来测试python的库。

在python3.3版本以后,这个是一个标准库。 对老版本来说,使用pip install mock 进行安装。

mock的精髓在于,你可以使用模拟的对象来替代你的系统的一部分,然后验证后续的执行是否正确。
mock的详细文档:http://www.voidspace.org.uk/python/mock/

以上就是python中的测试框架的详细内容,更多关于python 测试框架的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
深入理解python try异常处理机制
Jun 01 Python
教你学会使用Python正则表达式
Sep 07 Python
Python 使用list和tuple+条件判断详解
Jul 30 Python
python对验证码降噪的实现示例代码
Nov 12 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
python编程进阶之类和对象用法实例分析
Feb 21 Python
django中related_name的用法说明
May 20 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
Python读取图像并显示灰度图的实现
Dec 01 Python
python 批量将中文名转换为拼音
Feb 07 Python
Python加载数据的5种不同方式(收藏)
Nov 13 #Python
使用Python解析Chrome浏览器书签的示例
Nov 13 #Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 #Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 #Python
python+flask编写一个简单的登录接口
Nov 13 #Python
jupyter notebook快速入门及使用详解
Nov 13 #Python
Python中pass的作用与使用教程
Nov 13 #Python
You might like
php 将excel导入mysql
2009/11/09 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python常用算法学习基础教程
2017/04/13 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
python基于http下载视频或音频
2018/06/20 Python
Python 移动光标位置的方法
2019/01/20 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
什么是设计模式
2012/06/17 面试题
个人求职简历的自我评价
2013/10/19 职场文书
统计员岗位职责
2013/11/14 职场文书
高三语文教学反思
2014/01/15 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
安全生产标语
2014/06/06 职场文书
项目转让协议书
2014/10/27 职场文书
2014年副班长工作总结
2014/12/10 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
大学生学年个人总结
2015/02/15 职场文书
公司员工手册范本
2015/05/14 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL