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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 Python
python networkx 根据图的权重画图实现
Jul 10 Python
python之拟合的实现
Jul 19 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
PyTorch的torch.cat用法
Jun 28 Python
Python self用法详解
Nov 28 Python
Python Socket编程详解
Apr 25 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
输出控制类
2006/10/09 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
python实现进程间通信简单实例
2014/07/23 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
如何获得EntityManager
2014/02/09 面试题
办公室驾驶员岗位职责
2013/11/15 职场文书
医院实习介绍信
2014/01/12 职场文书
高中化学教学反思
2014/01/13 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
2014年工程师工作总结
2014/11/25 职场文书
技术股东合作协议书
2014/12/02 职场文书
写景作文评语集锦
2014/12/25 职场文书
给老婆道歉的话
2015/01/20 职场文书
博物馆观后感
2015/06/05 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang