python 单元测试之初次尝试
python 语言中有很多单元测试框架和工具,而unittest单元测试框架作为标准python语言中的一个模块。是其他框架和工具的基础。
想要进行单元测试,我们需要使用到unittest框架中的功能。在unittest框架中: TestCase(测试用例):对应功能模块里一条条用例 TestSuite (测试套件)多个测试用例集合在一起,就是TestSuite,就是一个功能模块的所有用例放这里了 TestLoader:是用来加载TestCase到TestSuite中。 TestRunner(测试运行器):是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息
import unittest #导入unittest模块
class mytest1(unittest.TestCase): #定义测试用例的类
def test1(self): #定义测试用例,测试用例必须以test开头,否则不会识别为测试用例
self.assertEqual(1,1) #测试用例断言,比较预期结果与实际结果,这里1==1,显然结果是pass
def test2(self):
self.assertEqual(2,1) #测试用例断言,比较预期结果与实际结果,这里2==1,显然结果是fail
class mytest2(unittest.TestCase): #定义测试用例的类
def test4(self):
self.assertEqual(1,1)
def test5(self):
self.assertEqual(3,2)
if __name__=='__main__':
suite=unittest.TestSuite() #定义一个测试套件
suite.addTest(unittest.makeSuite(mytest1)) #向测试套件里新增这个类下的所有测试用例
suite.addTest(unittest.makeSuite(mytest2))
unittest.TextTestRunner(verbosity=2).run(suite) #运行测试用例
测试结果:在测试结果中,我们运行的测试用例情况。成功了多少,失败了多少。失败的原因。

上述写法,会在命令行显示测试结果。单元测试结束后,可以通过HTMLTestRunner生成HTML测试报告,即便于阅读,也美观。使用HTMLTestRunner模块就可以将测试报告结果以HTML页面的形式展现出来。上述代码调整如下:(红色字体部分为调整部分)
import unittest #导入unittest模块
import HTMLTestRunner
class mytest1(unittest.TestCase): #定义测试用例的类 def test1(self): #定义测试用例,测试用例必须以test开头,否则不会识别为测试用例
self.assertEqual(1,1) #测试用例断言,比较预期结果与实际结果,这里1==1,显然结果是pass def test2(self):
self.assertEqual(2,1) #测试用例断言,比较预期结果与实际结果,这里2==1,显然结果是fail class mytest2(unittest.TestCase): #定义测试用例的类 def test4(self):
self.assertEqual(1,1) def test5(self):
self.assertEqual(3,2)
if __name__=='__main__': suite=unittest.TestSuite() #定义一个测试套件
suite.addTest(unittest.makeSuite(mytest1)) #向测试套件里新增这个类下的所有测试用例
suite.addTest(unittest.makeSuite(mytest2)) #unittest.TextTestRunner(verbosity=2).run(suite) #运行测试用例
filename="E:\\UTesting.html"
fp=open(filename,'wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='zwh UTesting report',description='the report is test!!')
runner.run(suite)
在E盘,我们会发现生成的测试报告:UTesting.html

python 单元测试之初次尝试的更多相关文章
- python单元测试之unittest框架使用总结
一.什么是单元测试 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对于函数abs(),我们可以编写的测试用例为: (1)输入正数,比如1.1.2.0.99,期待返回值与 ...
- python单元测试之unittest
unittest是python标准库,从2.1开始就有. 标准的使用流程: 1:实现一个unittest.TestCase的子类 2:在其中定义以_test开头的实例函数 3:用unittest.ma ...
- python单元测试之参数化
paramunittest下载地址:https://pypi.python.org/pypi/ParamUnittest/ 当然我们也可以通过pip install paramunittest方式进行 ...
- 初次尝试使用jenkins+python+appium构建自动化测试
初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...
- python笔记24-unittest单元测试之mock.patch
前言 上一篇python笔记23-unittest单元测试之mock对mock已经有初步的认识, 本篇继续介绍mock里面另一种实现方式,patch装饰器的使用,patch() 作为函数装饰器,为您创 ...
- 孤荷凌寒自学python第五十七天初次尝试使用python来连接远端MongoDb数据库
孤荷凌寒自学python第五十七天初次尝试使用python来连接远端MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第三天.感觉这个东西学习起来还是那么困 ...
- 孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录
孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数 ...
- 孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库
孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服 ...
- 初次尝试python爬虫,爬取小说网站的小说。
本次是小阿鹏,第一次通过python爬虫去爬一个小说网站的小说. 下面直接上菜. 1.首先我需要导入相应的包,这里我采用了第三方模块的架包,requests.requests是python实现的简单易 ...
随机推荐
- redhat4.4下安装GMT4.5.11
GMT是地学界常用的开源软件,不仅是因为其开源的特性,还有着独特的魅力. 所需要的软件如下 安装步骤: 1. Put the soft packages in one folder, i.e. /ho ...
- SpringMVC处理请求的大致流程是怎么样的
SpringMVC请求处理流程 Spring MVC请求处理架构图: 1.用户首先发送请求到前端控制器Dispatcher Servlet, 2.在doDispath这个方法中会为请求找到对 ...
- Pandas对于CSV的简单操作
Pandas对于CSV的简单操作 最近在研究pandas对于csv文件的读取以及一些操作,网上的信息比较乱,写篇博客记录一下,毕竟自己写的才是最适合自己的用法. 首先我们应该都知道,pandas是一个 ...
- python web 分页组件
闲来无事便写了一个易使用,易移植的Python Web分页组件.使用的技术栈是Python.Django.Bootstrap. 既然是易使用.易移植的组件,首先介绍一下其在django框架中的调用方式 ...
- 基于baseline和stochastic gradient descent的个性化推荐系统
文章主要介绍的是koren 08年发的论文[1], 2.1 部分内容(其余部分会陆续补充上来). koren论文中用到netflix 数据集, 过于大, 在普通的pc机上运行时间很长很长.考虑到写文 ...
- MFC中使用FLASH相关
出自http://my.oschina.net/ypimgt/blog/62573 一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe ...
- 论文翻译——R-CNN(目标检测开山之作)
R-CNN论文翻译 <Rich feature hierarchies for accurate object detection and semantic segmentation> 用 ...
- 两台linux 服务器同步
准备: 主服务器 192.168.0.1 备份服务器 192.168.0.2 备份服务器 注意需要开放873端口 而且小心selinux 开始: sudo vim /etc/rsyncd.passwd ...
- 分享非常漂亮的WPF界面框架源码及插件化实现原理
在上文<分享一个非常漂亮的WPF界面框架>中我简单的介绍了一个界面框架,有朋友已经指出了,这个界面框架是基于ModernUI来实现的,在该文我将分享所有的源码,并详细描述如何基于Mod ...
- ArcGIS中线转面
1. 打开ArcMap用Add Data加载shp Polyline线文件. 2. 选Editor编辑\Start Editing开始编辑. 3. 选Editor编辑\More Editing Too ...