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 多线程就这么简单(续)
之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...
python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
基于Python使用SVM识别简单的字符验证码的完整代码开源分享
关键字:Python,SVM,字符验证码,机器学习,验证码识别 1 概述 基于Python使用SVM识别简单的验证字符串的完整代码开源分享. 因为目前有了更厉害的新技术来解决这类问题了,但是本文作 ...
Python的变量及简单数据类型
Python的变量及简单类型 1. 变量 在Python编程中,变量是用来存放值或对像的容器.变量的名称可以自定义,但需遵循一定的规范,否则可能会引发一些错误.Python的变量可以分为数字.字符和 ...
Python与C的简单比较(Python3.0)
Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...
Python 基于Python及zookeeper实现简单分布式任务调度系统设计思路及核心代码实现
基于Python及zookeeper实现简单分布式任务调度系统设计思路及核心代码实现 by:授客 QQ:1033553122 测试环境 功能需求 实现思路 代码实践(关键技术点实现) 代码模块组织 ...
python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
python的变量和简单的数据类型
决定学习python这门语言了,本人资质愚钝,只会把学到的东西记录下来,供自己查漏补缺,也可以分享给和我一样正在学习python语言的人,若在记录中存在什么错误,希望多多批评指正,谢谢. Python ...
python socket 实现的简单http服务器
预备知识: 关于http 协议的基础请参考这里. 关于socket 基础函数请参考这里. 关于python 网络编程基础请参考这里. 一.python socket 实现的简单http服务器 废话 ...
随机推荐
使用TreeView 使用多选功能
1.要用TreeView多选就要显示复选框,TreeView默认不显示复选框,显示复选框: TreeView2.ShowCheckBoxes = TreeNodeTypes.All; 初始化TreeV ...
Windows下通过socket进行字符串和文件传输
今天在windows平台下,通过socket实现了简单的文件传输.通过实现这一功能,了解基本的windows网络编程和相关函数的使用方法. 在windows平台上进行网络编程,首先都需要调用函数WSA ...
【转】PowerShell入门(七):管道——在命令行上编程
转至:http://www.cnblogs.com/ceachy/archive/2013/02/22/PowerShell_Pipeline.html 管道对于Shell来说是个化腐朽为神奇的东西, ...
如何查询 Oracle 11g日志
可使用如下语句查询11g告警日志存放路径: --显示DIAGNOSTIC_DEST的位置 1.show parameter DIAGNOSTIC_DEST; ...
jquery plugins —— Chosen
官网地址:http://harvesthq.github.io/chosen/ Chosen (v1.4.2) Chosen has a number of options and attribute ...
Android实现真正的ViewPager【平滑过渡】+【循环滚动】!!!顺带还有【末页跳转】。
实现真正的ViewPager[平滑过渡]+[循环滚动]!!!顺带还有[末页跳转]. 首先呢, 我要对网上常见的3种ViewPager的循环滚动方法做个概述.急需看真正实现方法的同志请选择性忽略下面这一 ...
关于 RESTful API 中 HTTP 状态码的定义
最近正好使用了一会儿 Koa ,在这说一下自己对各个 请求码的见解和使用场景,懒人直接看 200.400.401.403.404.500 就可以了. 其中 2XX/3XX 其实都是请求成功,但是结果不 ...
react学习三
三点运算符 (...)的用法 1:展开运算符 let a=[1,2,3]; let b=[0,...a,4];//[0,1,2,3,4] let obj ={a:1,b:2}; let obj2 = ...
PhantomJSのメモいろいろ
提供されるモジュール群は5つ phantom: そのもの FileSystem: ファイルに出力したり.依存ファイルの存在確認したり System: コマンドラインから引数取りたいなら WebPage ...
【Asp.net入门01】动态网站基础知识
本节将介绍: 网站搭建流程 动态网站相关基础概念 网页的访问原理 使用浏览器访问网站是我们几乎天天在做的事情.以前我们只需要关注网页内容,作为网站开发人员,从现在开始我们要关注更深层次的东西了. 1. ...