Python 单元测试 之setUP() 和 tearDown()
setUp:表示前置条件,它在每一个用例执行之前必须会执行一次
setUp可以理解为我们需要自动化测试时,需要打开网页窗口,输入对应测试地址,这一些属于前置条件。
tearDown:表示释放资源,它在每次用例执行完之后会执行一次
tearDown可以理解为我们测试完毕后,需要关闭浏览器。
以下示例演示setUp和tearDown的执行顺序:
#coding:utf-8
import unittest
class Xseq(unittest.TestCase):
def setUp(self):
print "前置测试条件"
def tearDown(self):
print "结束测试条件"
def testadd(self):
print '1+1=',1+1
def testsub2(self):
print '3-2=',3-2
def testsub1(self):
print '3-3=',3-3
def mul(self):
print '3*1',3*1
if __name__=="__main__":
unittest.main()
运行结果为:
由此可看到运行的顺序:
1. 每次执行函数方法时,必须先执行一次setUp()函数,执行完一个函数方法后,必须再执行一次tearDown()函数
2. 执行函数的时候有序号时,例如testxx1,testxx2 会根据序号来进行执行
3. 当函数方法不是以test开头是,不执行该方法。
若我想要改变setUp()在所有用例执行之前只执行一次,和tearDown()函数在所有用例执行之后只执行一次的话
1. 需要使用python中的@classmethod内置装饰器
2. 需要把函数名改为setUpClass(cls) / tearDownClass(cls)
以下为示例:
#coding:utf-8
import unittest
class Xseq(unittest.TestCase):
@classmethod
def setUpClass(cls):
print "前置测试条件"
@classmethod
def tearDownClass(cls):
print "结束测试条件"
def testadd(self):
print '1+1=',1+1
def testsub2(self):
print '3-2=',3-2
def testsub1(self):
print '3-3=',3-3
def mul(self):
print '3*1',3*1
if __name__=="__main__":
unittest.main()
运行结果为:
尝试些一个百度搜索的单元测试:该文档创建命名为baidu_search.py
#coding:utf-8
from selenium import webdriver
import unittest
from time import sleep
class Baidu_search(unittest.TestCase):
def setUp(self):
self.bro=webdriver.Firefox()
self.bro.maximize_window()
self.bro.get("https://www.baidu.com")
sleep(1)
def tearDown(self):
sleep(1)
self.bro.quit()
def test_search2(self):
self.bro.find_element_by_id("kw").send_keys(u"第二次单元测试")
self.bro.find_element_by_id("su").click()
sleep(1)
def test_search1(self):
self.bro.find_element_by_id("kw").send_keys(u"第一次单元测试")
self.bro.find_element_by_id("su").click()
sleep(1)
if __name__=="__main__":
unittest.main()
运行的顺序为 def setUp() --- def test_search1() --- tearDown() , def setUp() -- def test_search2()--- tearDown()
---------------------
作者:药药君
来源:CSDN
原文:https://blog.csdn.net/Static_at/article/details/82754561
版权声明:本文为博主原创文章,转载请附上博文链接!
Python 单元测试 之setUP() 和 tearDown()的更多相关文章
- python单元测试unittest、setUp、tearDown()
单元测试反应的是一种以测试为驱动的开发模式,最大的好处就是保证一个程序模块的行为符合我们设计的测试用例,在将来修改的时候,可以极大程度保证该模块行为仍然是正确的. 下面我编写一个Dict来,这个类的行 ...
- python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)
pytest的setup和teardown函数(曾被一家云计算面试官问到过). pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.与python自带的unitest ...
- JUnit单元测试中的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小结
编写JUnit单元测试的时候,会用到 setUpBeforeClass().tearDownAfterClass().setUp().tearDown()这四个方法,例如用 eclipse新建一个ju ...
- python:pytest中的setup和teardown
原文:https://www.cnblogs.com/peiminer/p/9376352.html 之前我写的unittest的setup和teardown,还有setupClass和teardow ...
- The Hacker's Guide To Python 单元测试
The Hacker's Guide To Python 单元测试 基本方式 python中提供了非常简单的单元测试方式,利用nose包中的nosetests命令可以实现简单的批量测试. 安装nose ...
- python单元测试unittest
单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...
- Python单元测试——深入理解unittest (转)
单元测试的重要性就不多说了,可恶的是Python中 有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, no ...
- [译]PyUnit—Python单元测试框架(1)
1. 原文及参考资料 原文链接:http://docs.python.org/2/library/unittest.html# 参考文档: http://pyunit.sourceforge.net/ ...
- Python单元测试PyUnit框架轻度整改
原理 参考:单元测试原理 背景 年后有段时间没写代码了,所以趁着周末找了个python单元测试玩下,测试自己的Android应用.发现PyUnit虽然在单个脚本文件中添加多个测试用例,比如官网提供的方 ...
随机推荐
- 我希望早几年知道的5个Unix命令
使用*nix系统已经有一段时间了.但还是有一些命令是被我一直忽略的,真希望我能早几年发现这些命令. 1. man ascii 这个命令会打印出八进制.十六进制和十进制的ASCII码表.难以置信我是一个 ...
- 给力Mac下的思维整理软件,思维导图软件合辑
给力Mac下的思维整理软件,思维导图软件合辑 1.Mindjet MindManager for mac 10.0.211 经典的头脑风暴思维导图软件 最新破解Mindjet MindManager ...
- mac下安装好sencha cmd后每次都需要输入source ~/.bash_profile
解决办法: 在终端输入vim ~/.zshrc加一句 source ~/.bash_profile
- 在OpenCV中实现matlab中的im2double功能
最近在把matlab的代码转化到VS2010上. matlab中采用im2double将读入的图像转换为double型,在OpenCV中就需要对图像进行深度的转换. 读入一幅灰度图像,深度为1(8U) ...
- 如何查看linux版本 如何查看LINUX是多少位
一.如何得知自己正在使用的linux是什么版本呢,下面的几种方法将给你带来答案! 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux ...
- Struts2学习记录-Value Stack(值栈)和OGNL表达式
仅仅是学习记录.把我知道的都说出来 一.值栈的作用 记录处理当前请求的action的数据. 二,小样例 有两个action:Action1和Action2 Action1有两个属性:name和pass ...
- struts2.16中文乱码问题解决
方法1.在struts.xml文件中添加<constant name="struts.i18n.encoding" value="GBK" /> 方 ...
- 利用iptables的NAT代理实现内网访问外网
利用NAT代理实现内网访问外网 背景及原理 若局域网中的两台计算机只能有一台能够访问外网,而这两台计算机之间能相互通信,那么可以配置能访问外网的那台服务器实现路由器的功能,即实现其他机器的NAT转换, ...
- 性能测试脚本开发(LR.NET控件)
性能测试过程中,最耗费经历的就是编写性能测试脚本的过程,在大部分的测试工具中都是采用录制的方式,通过录制产生脚本,然后根据需要进行修改,以及参数化.有些时候为了能够完成某一个功能的脚本,需要将录制下来 ...
- @Cacheable注解在spring3中的使用-实现缓存
转: http://blog.csdn.net/chenleixing/article/details/44815443 在软件开发中使用缓存已经有一个非常久的历史了.缓存是一种很好的设计思想,一旦 ...