python unittest 使用记录
2017-06-15 12:20
330 查看
在使用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做每个用例的环境初始化
dome2:
每个class用一次,setUpClass->test_case1->test_case2->tearDownClass;也就是说使用setUpClass、tearDownClass可以做所有用例的前置初始化和结束
dome3
setUp,tearDown,setUpClass,tearDownClass可以组合使用也可单独使用
dome4:
整个文件使用一次,主要是针对一个文件中存在多个class
setUpModule()->class1->setUpClass->setUp->test_case->tearDown->tearDownClass->class2...->tearDownModule()
unittest suite加载testcase的几种方法
dome1
dome2
dome3
多个测试套件构建成更大的测试套件
dome4
默认的测试套件
dome5
按给定的文件名称执行测试用例
构造测试用例集
参考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 unittest class 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 unittest class 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 unittest class 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 unittest def 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 suite def suites(): # 构造测试用例集 t_suite = unittest.TestSuite() # 加载一个类文件下所有的测试用例 suite = t_suite(unittest.makeSuite(test_class.TestCases)) return suite def suite2(): # 测试用例存放目录 test_dir = './' # 加载test_dir路径下所有以test_开头.py结尾的文件中的测试用例 suite = unittest.TestLoader().discover(test_dir, pattern='test_*.py') return suite
相关文章推荐
- python unitTest使用框架
- Python中unittest模块做UT(单元测试)使用实例
- Python单元测试:unittest使用简介
- Python单元测试框架unittest使用方法讲解
- Python之自动单元测试之一(unittest使用实例)
- python 使用unittest 测试接口
- 在 unittest 中使用 logging 模块记录测试数据
- python unittest简单使用备忘笔记
- python使用unittest进行单元测试
- python unittest框架的使用&解析
- Python之自动单元测试之一(unittest使用实例)
- 举例如何使用Python unittest 模块进行接口测试
- python unittest使用技巧
- Python之使用unittest框架和HTMLTestRunner.py文件实现多个测试用例执行与测试报告生成
- python如何使用unittest测试接口
- Python单元测试框架使用unittestpyUnit
- 第二种方式,修改python unittest的执行顺序,使用猴子补丁
- Python之自动单元测试之一(unittest使用实例)
- Python单元测试框架unittest使用方法讲解
- python unittest TestCase间共享数据(全局变量的使用)