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 单元测试之初次尝试的更多相关文章

  1. python单元测试之unittest框架使用总结

    一.什么是单元测试 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对于函数abs(),我们可以编写的测试用例为: (1)输入正数,比如1.1.2.0.99,期待返回值与 ...

  2. python单元测试之unittest

    unittest是python标准库,从2.1开始就有. 标准的使用流程: 1:实现一个unittest.TestCase的子类 2:在其中定义以_test开头的实例函数 3:用unittest.ma ...

  3. python单元测试之参数化

    paramunittest下载地址:https://pypi.python.org/pypi/ParamUnittest/ 当然我们也可以通过pip install paramunittest方式进行 ...

  4. 初次尝试使用jenkins+python+appium构建自动化测试

    初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...

  5. python笔记24-unittest单元测试之mock.patch

    前言 上一篇python笔记23-unittest单元测试之mock对mock已经有初步的认识, 本篇继续介绍mock里面另一种实现方式,patch装饰器的使用,patch() 作为函数装饰器,为您创 ...

  6. 孤荷凌寒自学python第五十七天初次尝试使用python来连接远端MongoDb数据库

    孤荷凌寒自学python第五十七天初次尝试使用python来连接远端MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第三天.感觉这个东西学习起来还是那么困 ...

  7. 孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录

    孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数 ...

  8. 孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库

    孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服 ...

  9. 初次尝试python爬虫,爬取小说网站的小说。

    本次是小阿鹏,第一次通过python爬虫去爬一个小说网站的小说. 下面直接上菜. 1.首先我需要导入相应的包,这里我采用了第三方模块的架包,requests.requests是python实现的简单易 ...

随机推荐

  1. PHP面向对象访问修饰符的基本了解

    l 文档的介绍: 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的.被定义为公有的类成员可以在任何地方被访问.被定义 ...

  2. 使用dubbo中间件出现NoSuchBeanDefinitionException异常

    dubbo中间件中有一个import com.alibaba.dubbo.config.annotation.Service类,在service层添加注解时要注意,我们添加的是import org.s ...

  3. 解决wordpress 5.3更新后Uncaught Typeerror: $ is not a function

    本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:解决wordpress 5.3更新后Uncaught Typeerror: $ is not a function: 本文通过插件的办法解 ...

  4. c++设计模式:模板模式

    模板模式和策略模式的区别: 模板方法模式的主要思想:定义一个算法流程,将一些特定步骤的具体实现.延迟到子类.使得可以在不改变算法流程的情况下,通过不同的子类.来实现“定制”流程中的特定的步骤. 策略模 ...

  5. 第一章 使用开发者模式快速入门 Odoo 12

    本文为最好用的免费ERP系统Odoo 12开发手册系列文章第一篇. Odoo提供了一个快速应用开发框架,非常适合创建商业应用.这类应用通常用于保留业务记录,增删改查操作.Odoo 不仅简化了这类应用的 ...

  6. jeecmsv9-adminVue 打包出错

    F:\jeecms\jeecmsv9-adminVue>node build\build.js - building for production...Error processing file ...

  7. btree b+tree 的关系

    btree: 平衡二叉树 b+tree:平衡和二叉树的变种,只在叶节点存储数据. mysql 索引使用的数据结构是 b+tree.

  8. Ceisum官方教程1 -- 开始

    原文地址:https://cesium.com/docs/tutorials/getting-started/ 学会使用全球地形.影像.3d tile(模型切片).地理编码创建一个Cesium程序. ...

  9. JavaWeb — Servlet(Server Applet)

    Servlet(Server Applet) 全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容. 狭义的Servle ...

  10. redis学习笔记04-事务

    1.redis事务 事务实际上指的是一组命令的集合,执行时会按顺序串行的执行,中途不能加入其它命令.它用来解决批处理需求. 在redis中的基本使用如下: >multi ok >incr ...