unittest简介
unittest是python里面的单元测试框架
1 unittest 简介
1).先导入 unittest
2).用 help 函数查看源码解析
3).查看描述:
Python unit testing framework, based on Erich Gamma's JUnit and KentBeck's Smalltalk testing framework.
翻译:python 的单元测试框架,是基于 java 的 junit 测试框架
2 unittest使用
1).第一行是导入 unittest 这个模块
2).class 这一行是定义一个测试的类,并继承 unittest.TestCase 这个类
3).接下来是定义了四个测试 case 名称:testAdd 、 testMul、testMinus、testDiv
4).注释里面有句话很重要,这个要敲下黑板记笔记了: ## test method namesb b egin 'test*' -- 翻译:测试用例的名称要以 t test 开头
5).然后是断言 assert,这里的断言方法是 assertEqual-判断两个是否相等,这个断言可以是一个也可以是多个
6).if 下面的这个 unittest.main()是运行主函数,运行后会看到测试结果:
参考源码:
- # coding:utf-8
- import unittest
- class IntegerArithmeticTestCase(unittest.TestCase):
- # test method namesb b egin 'test*'
- def testAdd(self):
- self.assertEquals((1+2), 3)
- self.assertEquals((0+1), 1)
- def testMul(self):
- self.assertEquals((0*5), 0)
- self.assertEquals((10*5), 50)
- def testMinus(self):
- result = 6-5
- hope = 1
- self.assertEquals(result, hope)
- def testDiv(self):
- result = 7/2
- hope = 3
- self.assertEquals(result, hope)
- if __name__ == '__main__':
- unittest.main()
* 注意:
当断言没有通过时,就会报错,例如将上面最后一个用例的期望结果改为hope=3.5,执行结果就会报错
最后运行结果,第四个是失败的,失败原因:AssertionError: 3 != 3.5
F.
=====================================================================
=
FAIL: testDivide (__main__.Test)
这里是测试除法
---------------------------------------------------------------------
-
Traceback (most recent call last):
File "D:/test/web-project/p.py", line 14, in testDivide
self.assertEqual(result, hope)
AssertionError: 3 != 3.5
---------------------------------------------------------------------
-
Ran 4 tests in 0.004s
FAILED (failures=1)
3 前置和后置
1).setUp:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的前置条件。
2).tearDown:执行完用例后,为了不影响下一次用例的执行,一般有个数据还原的过程,这就是执行用例的后置条件。
3).很多人执行完用例,都不去做数据还原,以致于下一个用例执行失败习惯不好。
4).前置和后置都是非必要的条件,如果没有也可以写 pass
完整案例:
- # coding:utf-8
- from selenium import webdriver
- from selenium.webdriver.support import expected_conditions as EC
- import time
- import unittest
- class Blog(unittest.TestCase):
- # 前置操作
- def setUp(self):
- self.driver = webdriver.Firefox()
- self.driver.get("http://www.cnblogs.com/101718qiong/")
- self.driver.maximize_window()
- # 测试用例
- def test_blog(self):
- time.sleep(3)
- result = EC.title_is(u'Silence&QH - 博客园')(self.driver)
- print result
- self.assertTrue(result)
- # 后置操作
- def tearDown(self):
- self.driver.quit()
- if __name__ == "__main__":
- unittest.main()
unittest简介的更多相关文章
- 3.1 unittest简介
3.1 unittest简介 前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG.python里面也有单元测试框架-unittest,相当于是一个python版的junit.py ...
- unittest简介01
前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,python里面也有单元测试框架-unittest,相当于是一个python版的junit. 一.unittest简介 1.先 ...
- python接口自动化(二十一)--unittest简介(详解)
简介 前边的随笔主要介绍的requests模块的有关知识个内容,接下来看一下python的单元测试框架unittest.熟悉 或者了解java 的小伙伴应该都清楚常见的单元测试框架 Junit 和 T ...
- 自动化测试基础篇--Selenium unittest简介
一.什么是unittest unittest是Python单元测试框架,类似于JUnit框架. unittest中有4个重要的概念:test fixture, test case, test suit ...
- unittest系列(一)unittest简介和示例
unittest - 单元测试框架 单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格.其支持测试自动化,配置共享和关机代码测试.支持将测试样例聚合到测试集中,并将测 ...
- python+selenium自动化软件测试(第3章):unittest
3.1 unittest简介 前言(python基础比较弱的,建议大家多花点时间把基础语法学好,这里有套视频,可以照着练习下:http://pan.baidu.com/s/1i44jZdb 密码:92 ...
- XUnit测试框架-Python unittest
选择 语言选择 本次个人作业我选择的语言是Python,了解学习Python有一段时间了但是一直没有练习,所以这次玩蛇,使用的版本是Python3.6. 开发工具选择 我选择的IDE是Pycharm, ...
- Python单元测试unittest - 单元测试框架
一.unittest简介 unitest单元测试框架最初是有JUnit的启发,它支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中,以及测试与报告框架的独立性. 二.unittest相关概念 ...
- unittest测试
标签(空格分隔): unittest unittest介绍: python里面也有单元测试框架-unittest,相当于是一个python版的junit. 一.unittest简介 1.先导入unit ...
随机推荐
- ArcGIS API for Javascript 图层切换渐变效果实现
在一个WebGIS系统中往往要实现图形的切换,比如业务图层的切换,以及底图的切换等等,可以通过控制图层的可见性来实现.比如通过设置图层的opacity .visible来控制,前几天有网友聊天的时候提 ...
- Android Messenger
说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写.如果你对这个过程不熟悉,可以查看Android aidl Binder ...
- 设计模式15---Android 观察者模式(转载自:“http://blog.csdn.net/fangchongbory/article/details/7774044”)
/* * 观察者模式 * 定义对象间的一种一个(Subject)对多(Observer)的依赖关系,当一个对象的状态发送改变时,所以依赖于它的 * 对象都得到通知并被自动更新 * * 当然, ...
- 对ArrayList(Vector)的排序
当需要对ArrayList(Vector)里面的元素进行简单的排序时,可以使用Collections.sort();这个方法 import java.util.ArrayList; import ja ...
- php中this、self、parent解析
概述: this:指向类当前对象的指针:self:指向类本身,一般指向类中的静态变量:parent:指向父类的指针,一般使用parent来调用父类的构造函数. 下面通过程序详细介绍: 1.this & ...
- eclipse可以调试但是无法打开网页,提示一直在加载
工作过程中遇到了eclipse调试可以正常执行,也没有报错,但是通过浏览器打开网页就是打不开,还提示一直加载.这个问题找了很多网页和搜索引擎,大多数的方法就是重新配置elipse里的tomcat的we ...
- simrank
simrank 背景 度量相似度是许多应用的关键问题.传统方法与问题的领域相关,如文本匹配.计算交集.simrank则利用关联关系度量相似性,即"两个节点的相似性和各自邻域节点的相似度有关& ...
- How to: Cancel a Task and Its Children
http://msdn.microsoft.com/en-us/library/dd537607.aspx using System; using System.Collections.Concurr ...
- Delegate Func Action Predicate default() 知识点
看仓储模式,有代码写到这几个关键字,陌生,记录下来. 定义一个类型,此类型抽象化了相似结构的某一类方法,因此我们能将此类型代表的方法作为参数进行传递. Delegate至少0个参 ...
- html中的table导出Excel
演示地址: http://www.jq22.com/yanshi3312 具体代码: <!DOCTYPE html> <html lang="zh-CN"> ...