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正则表达式及使用正则表达式的例子
Jan 22 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
python opencv判断图像是否为空的实例
Jan 26 Python
python元组的概念知识点
Nov 19 Python
python的等深分箱实例
Nov 22 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
Python实现把类当做字典来访问
Dec 16 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
Python数据库封装实现代码示例解析
Sep 05 Python
python ssh 执行shell命令的示例
Sep 29 Python
python xlwt模块的使用解析
Apr 13 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
用 JSON 处理缓存
2007/04/27 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
2016/03/31 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
python遍历路径破解表单的示例
2020/11/21 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
医学专业毕业生推荐信
2013/11/14 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
给老婆的道歉信
2015/01/20 职场文书
车间主任岗位职责
2015/02/03 职场文书
工作态度不好检讨书
2015/05/06 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
Redis 配置文件重要属性的具体使用
2021/05/20 Redis