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 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
Python3生成手写体数字方法
Jan 30 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python实现二维插值的三维显示
Dec 17 Python
Python @property装饰器原理解析
Jan 22 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
python IP地址转整数
Nov 20 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 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中文件上传的安全问题
2006/10/09 PHP
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
微信支付开发告警通知实例
2016/07/12 PHP
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python计算回文数的方法
2015/03/11 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
Python模块文件结构代码详解
2018/02/03 Python
python 获取url中的参数列表实例
2018/12/18 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
详解python statistics模块及函数用法
2019/10/27 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
工作的心得体会
2013/12/31 职场文书
会计辞职信范文
2014/01/15 职场文书
社区交通安全实施方案
2014/03/22 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
企业宗旨标语
2014/06/10 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书