python的unitest的简单使用

unittest提供一个TestLoader类用于自动创建一个测试集并把单个测试放入到测试集中。
TestLoader自动运行测试用例以test开头的方法的测试方法。
#coding=utf8
'''
unittest提供一个TestLoader类用于自动创建一个测试集并把单个测试放入到测试集中。
TestLoader自动运行测试用例以test开头的方法的测试方法。
在多个测试用例在决定运行哪个测试用例的策略是通过内建函数对测试函数名排序决定的。
通常习惯将测试集组合在一起,以便系统一次运行所有的测试用例。
TestSuite实例添加到一个TestSuite中就像把一个TestCase实例添加到一个TestSuite中。
-----------------------------------------------------------------------------------------
suite1=module1.TheTestSuite()
suite2=module2.TheTestSuite()
alltests=unittest.TestSuite([suite1,suite2])
-----------------------------------------------------------------------------------------
可以将测试用例和测试套件的定义放在与要测试的代码相同的模块中,但将测试代码放在单独的模块中有几个好处:
1、测试模块可以从命令行独立运行。
2、测试代码可以更容易地与运输代码分开。
3、有更少的诱惑改变测试代码,以适应代码测试没有一个很好的理由。
4、测试代码的修改频率要比它测试的代码少得多。
5、测试代码可以更容易重构。
6、用C编写的模块的测试必须在单独的模块中,所以为什么不一致?
7、如果测试策略更改,则不需要更改源代码。
'''
from __future__ import division
from Lib.HTMLTestRunner import HTMLTestRunner
from unittest import TestCase,TestLoader,TestSuite
from source.calcutor import calculatorClass class TestMul(TestCase):
def setUp(self):
pass def test_defaultMul(self):
cal=calculatorClass()
self.assertEqual(cal.mul(),200 , "The result should be equal 200") def test_negtiveMul(self):
cal=calculatorClass(-10,-25)
self.assertEqual(cal.mul(),250 , "The result should be equal 250") def test_floatMul(self):
cal=calculatorClass(0.25,0.4)
self.assertEqual(cal.mul(),0.1, "The result should be equal 0.1") def tearDown(self):
pass class TestDiv(TestCase):
def setUp(self):
pass def test_defaultDiv(self):
cal=calculatorClass()
self.assertEqual(cal.mul(),0.5 , "The result should be equal 0.5") def test_negtiveDiv(self):
cal=calculatorClass(-10,-25)
self.assertEqual(cal.mul(),0.4 , "The result should be equal 250") def test_floatDiv(self):
cal=calculatorClass(0.24,0.4)
self.assertEqual(cal.mul(),0.6, "The result should be equal 0.1") def tearDown(self):
pass def allTest():
''' 创建测试集'''
suite1=TestLoader().loadTestsFromTestCase(TestMul)
suite2=TestLoader().loadTestsFromTestCase(TestDiv)
alltests=TestSuite([suite1,suite2])
return alltests if __name__=="__main__":
'''创建保存测试结果的文件'''
html=file("..\\report.html","wb+")
'''调用HTMLTestRunner类生成html格式测试运行报告'''
runner=HTMLTestRunner(stream=html,title="Test Report",description="The state of the run testcase")
runner.run(allTest())
html.close()
 

python的unitest的简单使用的更多相关文章

  1. python 多线程就这么简单(续)

    之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...

  2. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

  3. 基于Python使用SVM识别简单的字符验证码的完整代码开源分享

    关键字:Python,SVM,字符验证码,机器学习,验证码识别 1   概述 基于Python使用SVM识别简单的验证字符串的完整代码开源分享. 因为目前有了更厉害的新技术来解决这类问题了,但是本文作 ...

  4. Python的变量及简单数据类型

    Python的变量及简单类型 1.  变量 在Python编程中,变量是用来存放值或对像的容器.变量的名称可以自定义,但需遵循一定的规范,否则可能会引发一些错误.Python的变量可以分为数字.字符和 ...

  5. Python与C的简单比较(Python3.0)

    Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...

  6. Python 基于Python及zookeeper实现简单分布式任务调度系统设计思路及核心代码实现

    基于Python及zookeeper实现简单分布式任务调度系统设计思路及核心代码实现   by:授客 QQ:1033553122 测试环境 功能需求 实现思路 代码实践(关键技术点实现) 代码模块组织 ...

  7. python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查

    python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...

  8. python的变量和简单的数据类型

    决定学习python这门语言了,本人资质愚钝,只会把学到的东西记录下来,供自己查漏补缺,也可以分享给和我一样正在学习python语言的人,若在记录中存在什么错误,希望多多批评指正,谢谢. Python ...

  9. python socket 实现的简单http服务器

    预备知识: 关于http 协议的基础请参考这里. 关于socket 基础函数请参考这里. 关于python 网络编程基础请参考这里. 一.python socket 实现的简单http服务器   废话 ...

随机推荐

  1. [IMX6DL][Android4.4] 电池低电量告警提示【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/51789964 之前版本的电池电量低是通过发送 intent ACTION_BATTERY_L ...

  2. 【转】Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)

    一.线程的状态 Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态). New:新建状态,当线 ...

  3. 《Spring Boot官方指南》(二)入门

    如果您刚开始接触Spring Boot,或者简称’Spring’, 这个部分对您来说非常有用.这个部分提供了“是什么?”,“怎么做?”和 “为什么?”的解释.您除了会阅读一份附带Spring Boot ...

  4. bzoj 1007: [HNOI2008]水平可见直线【半平面交】

    其实并不算标准半平面交?但是思路差不多 先按照斜率排序,然后用栈维护凸壳,每遇到重斜率或a[i],s[top-1]交点的x轴在s[top],s[top-1]交点左侧,则说明s[top]被a[i],s[ ...

  5. bzoj 4033: [HAOI2015]树上染色【树形dp】

    准确的说应该叫树上分组背包?并不知道我写的这个叫啥 设计状态f[u][j]为在以点u为根的子树中有j个黑点,转移的时候另开一个数组,不能在原数组更新(因为会用到没更新时候的状态),方程式为g[j+k] ...

  6. P4475 巧克力王国(KDTree)

    传送门 首先可以把约束条件看成一条直线,然后每个巧克力看成一个点,求给定区域内的点权和 用KDTree,每次判断一下当前矩形是否整个都在里面或都在外面,是的话直接返回,否则的话递归 注意,必须该矩形四 ...

  7. cxf CXF搭建webService服务器

    http://observer.blog.51cto.com/4267416/1231205 手动发布: public class ServerMain { public static void ma ...

  8. Jmeter常见问题汇总(不断更新ing)

    1.测试计划中有多个线程组执行时,为了防止线程组间的相互干扰,需要如下设置一下:     2,接口测试中的上传字段为汉字时需要进行什么形式的转码? 方法一:需要把编码复选框勾选,才能正常通过接口查询数 ...

  9. 通过IDEA制作包含Java应程序的Docker镜像

    IDEA官网在IDEA中把Java App制作成Docker镜像并启动一个容器运行 在idea上使用docker作为java的开发环境[][] ubuntu+docker+docker-compose ...

  10. [CF1076F] Summer Practice Report

    Description Transmission Gate Solution 这一题可以考虑Dp,设\(Dp[i][j]\) 为在第i段中,以j颜色为结尾的最后一小段长度的最小值. 那么可以先考虑以表 ...