python unittest 使用记录
来源:互联网 发布:nginx 指定配置文件 编辑:程序博客网 时间:2024/06/06 15:41
在使用python写自动化的时候,选择使用了unittest运行测试用例,在此记录使用unittest的常规用法
参考1:http://www.cnblogs.com/idbeta/archive/2015/12/11/5040187.html
参考2:http://www.2cto.com/kf/201409/330721.html
初始化环境
dome1:
每次执行用例时都会: setUp->test_case->tearDown ;也就是说可以使用setUp和tearDown做每个用例的环境初始化
#!/usr/bin/env python# -*- coding: utf-8 -*-import unittestclass MyTestCase(unittest.TestCase): # 预置环境 def setUp(self): print '开始执行' # 清理环境 def tearDown(self): print '结束执行' # 测试用例 def test_case1(self): print '用例1' # 测试用例 def test_case2(self): print '用例2'if __name__ == '__main__': unittest.main()
dome2:
每个class用一次,setUpClass->test_case1->test_case2->tearDownClass;也就是说使用setUpClass、tearDownClass可以做所有用例的前置初始化和结束
#!/usr/bin/env python# -*- coding: utf-8 -*-import unittestclass MyTestCase(unittest.TestCase): @classmethod def setUpClass(cls): print '开始执行' @classmethod def tearDownClass(cls): print '结束执行' # 测试用例 def test_case1(self): print '用例1' # 测试用例 def test_case2(self): print '用例2'if __name__ == '__main__': unittest.main()
dome3
setUp,tearDown,setUpClass,tearDownClass可以组合使用也可单独使用
#!/usr/bin/env python# -*- coding: utf-8 -*-import unittestclass MyTestCase(unittest.TestCase): # @classmethod # def setUpClass(cls): # print '首先开始执行' @classmethod def tearDownClass(cls): print '最后结束执行' def setUp(self): print '每次首先执行1' # def tearDown(self): # print '每次结束执行1' # 测试用例 def test_case1(self): print '用例1' # 测试用例 def test_case2(self): print '用例2'if __name__ == '__main__': unittest.main()
dome4:
整个文件使用一次,主要是针对一个文件中存在多个class
setUpModule()->class1->setUpClass->setUp->test_case->tearDown->tearDownClass->class2...->tearDownModule()
# !/usr/bin/env python# -*- coding: utf-8 -*-import unittestdef setUpModule(): print '1setUpModule'def tearDownModule(): print '1tearDownModule'class MyTestCase1(unittest.TestCase): @classmethod def setUpClass(cls): print"1setUpClass" @classmethod def tearDownClass(cls): print"1tearDownClass" def setUp(self): print '1setUp' def tearDown(self): print '1tearDown' def test_case1(self): print '1test_case1' def test_case2(self): print '1test_case2'class MyTestCase2(unittest.TestCase): @classmethod def setUpClass(cls): print"2setUpClass" @classmethod def tearDownClass(cls): print"2tearDownClass" def setUp(self): print '2setUp' def tearDown(self): print '2tearDown' def test_case1(self): print '2test_case1' def test_case2(self): print '2test_case2'if __name__ == '__main__': unittest.main()
unittest suite加载testcase的几种方法
dome1
def suite(): suite = unittest.TestSuite() suite.addTest(WidgetTestCase('test_default_size')) suite.addTest(WidgetTestCase('test_resize')) return suite
dome2
def suite(): tests = ['test_default_size', 'test_resize'] return unittest.TestSuite(map(WidgetTestCase, tests))
dome3
多个测试套件构建成更大的测试套件
suite1 = module1.TheTestSuite()suite2 = module2.TheTestSuite()alltests = unittest.TestSuite([suite1, suite2])
dome4
默认的测试套件
suite = unittest.TestLoader().loadTestsFromTestCase(WidgetTestCase)
dome5
按给定的文件名称执行测试用例
test_dir = './'discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
构造测试用例集
def suite1(): # 构造测试用例集 suite = unittest.TestSuite() # 加载测试用例 suite.addTest(test_class.TestCases('test_baidu_search')) suite.addTest(test_class.TestCases('test_search2')) suite.addTest(test_class.TestCases('test_get_title')) return suitedef suites(): # 构造测试用例集 t_suite = unittest.TestSuite() # 加载一个类文件下所有的测试用例 suite = t_suite(unittest.makeSuite(test_class.TestCases)) return suitedef suite2(): # 测试用例存放目录 test_dir = './' # 加载test_dir路径下所有以test_开头.py结尾的文件中的测试用例 suite = unittest.TestLoader().discover(test_dir, pattern='test_*.py') return suite
阅读全文
2 0
- python unittest 使用记录
- python unitTest使用框架
- 【python】python的unittest使用
- python 使用unittest 测试接口
- python unittest的简单使用
- Python unittest 使用基本过程
- python使用unittest进行单元测试
- Python+Unittest+自动化:使用Python进行单元测试
- python unittest
- Python unittest
- python unittest
- python unittest
- python unittest
- Python unittest
- 使用PYTHON的UNITTEST做测试
- Python中使用unittest做UT
- Python练习代码 -- 单元测试 使用unittest
- python单元测试之unittest框架使用总结
- 左右按钮,切换多张图片
- EJB客户端访问
- 主机PPPOE拨号VMWARE虚拟机在三种模式下上网
- 谷歌的玻璃心碎了一地
- maven安装
- python unittest 使用记录
- 刷清橙OJ--A1070.多项式求导
- 内部排序算法:基数排序
- thrift工作原理(转载)
- 2. Java中的垃圾收集
- ubuntu16.10 下opencv2.4.13安装配置
- 二进制有符号数加法
- “无法为源卷创建vss快照 错误代码:2147549183”
- Mediaplayer 音乐播放