Python单元测试工具doctest和unittest使用解析


Posted in Python onSeptember 02, 2019

Python标准库包含两个测试工具。

doctest:一个简单的模块,为检查文档而设计,但也适合用来编写单元测试。

unittest:一个通用的测试框架。

一、使用doctest进行单元测试

创建文件mymath.py,内容

def square(x):
  '''
  计算平方并返回结果(下面是单元测试的格式)
  >>> square(2)
  >>> square(3)
  '''
  return x * x
if __name__ == '__main__':
  import doctest,mymath
  doctest.testmod(mymath)

在Sublime Text 3中运行只是提示[Finished in 0.2s]。

在cmd命令下切换到mymath.py所在目录,运行python mymath.py -v后,有提示测试详细信息,测试通过。如下图:

Python单元测试工具doctest和unittest使用解析

把函数square里面的return x * x 改成 return x / x。

再次运行python mymath.py -v,提示测试不通过,如下图:

Python单元测试工具doctest和unittest使用解析

二、使用unittest进行单元测试

还是用mymath.py测试,内容:

def square(x):  
  return x * x

新建单元测试文件test_math.py,内容:

import unittest, mymath
class mathTestCase(unittest.TestCase):  
  def test_square(self):    
    self.assertEqual(mymath.square(2), 4)
    self.assertEqual(mymath.square(3), 9)
if __name__ == '__main__':
  unittest.main()

运行后,显示OK 测试通过。

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

把函数square里面的return x * x 改成 return x / x。

再次运行,这次显示FAILED 测试不通过。

F
======================================================================
FAIL: test_square (__main__.mathTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
 File "D:\projects\python\test_math.py", line 6, in test_square
  self.assertEqual(mymath.square(2), 4)
AssertionError: 1.0 != 4

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (failures=1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python之wxPython菜单使用详解
Sep 28 Python
Python 基础教程之str和repr的详解
Aug 20 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
python实现复制大量文件功能
Aug 31 Python
python实现名片管理器的示例代码
Dec 17 Python
使用Pytorch来拟合函数方式
Jan 14 Python
python pptx复制指定页的ppt教程
Feb 14 Python
在keras里面实现计算f1-score的代码
Jun 15 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
python 视频下载神器(you-get)的具体使用
Jan 06 Python
Python使用pyecharts控件绘制图表
Jun 05 Python
Python操作SQLite数据库过程解析
Sep 02 #Python
Python实现生成密码字典的方法示例
Sep 02 #Python
python使用多线程编写tcp客户端程序
Sep 02 #Python
使用python实现离散时间傅里叶变换的方法
Sep 02 #Python
详解Python图像处理库Pillow常用使用方法
Sep 02 #Python
Django使用中间件解决前后端同源策略问题
Sep 02 #Python
python elasticsearch环境搭建详解
Sep 02 #Python
You might like
php中文本操作的类
2007/03/17 PHP
常用的php对象类型判断
2008/08/27 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
js精度溢出解决方案
2012/12/02 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
在Python中使用HTML模版的教程
2015/04/29 Python
python计算圆周率pi的方法
2015/07/11 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
python实现桌面托盘气泡提示
2019/07/29 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
机械设计制造专业个人求职信
2013/09/25 职场文书
幼儿园托班开学寄语
2014/01/18 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
大学三年计划书范文
2014/04/30 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
销售经理岗位职责
2015/01/31 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
通知函的格式
2015/04/27 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
Python  lambda匿名函数和三元运算符
2022/04/19 Python