unittest笔记

 1 import unittest
 2 import HTMLTestRunner, xmlrunner
 3 class My(unittest.TestCase):   # 每一个类都是一个测试用例,注意必须继承 unittest.TestCase
 4     def testB(self):  # 用例步骤的定义   必须以test开头
 5         '''这是BBB'''  # 该注释可在 HTMLTestRunner报告中展示在用例步骤描述中
 6         self.assertEqual(2, 2)
 7 
 8     def testA(self):
 9         self.assertEqual(2, 2)
10 
11 class My2(unittest.TestCase):
12     def testC(self):
13         self.assertEqual(2, 1)
14 
15 if __name__ == '__main__':
16     # unittest.main()    # 执行当前文件中所有的测试用例
17     suite = unittest.TestSuite()  # 初始化suite
18     suite.addTest(unittest.makeSuite(My))   # 添加类My中的所有用例步骤到suite中
19     suite.addTest(My2('testC'))  # 添加某个用例的某一个步骤
20     # 生成HTMLTestRunner测试报告
21     fw = open('test.html', 'wb')  # 初始化HTMLTestRunner测试报告
22     runner = HTMLTestRunner.HTMLTestRunner(stream=fw, title='测试', description='描述Test') #
23     runner.run(suite)
24     # 生成xmlrunner测试报告   该报告供主要供Jenkins使用
25     runner2 = xmlrunner.XMLTestRunner(output='.')
26     runner2.run(suite)

 

 1 import unittest
 2 
 3 class MyTest(unittest.TestCase):
 4     @classmethod
 5     def setUpClass(cls): # serUpClass 为用例初始化
 6         print('我是setupclass')
 7     @classmethod         
 8     def tearDownClass(cls):   # tearDownClass 为用例执行结束后处理
 9         print('我是teardownclass')
10 
11     def setUp(self):    # 每个用例步骤运行开始前执行 
12         print('每个用例运行之前都会运行我')
13     def tearDown(self): # 每个用例步骤运行结束后执行
14         print('每个用例运行之后都会再运行我')
15     def testnidaye(self):  #   用例步骤
16         self.assertEqual(1, 1)
17 
18 
19 if __name__ == '__main__':
20     unittest.main()  # 执行所有用例

 

多文件指获取测试用例

 1 import unittest, HTMLTestRunner
 2 
 3 suite = unittest.TestSuite()    # 定义空的测试用例集
 4 all_case = unittest.defaultTestLoader.discover(      # 获取指定目录下特定文件中的测试用例
 5     r'/Users/luohailong/PycharmProjects/unittest/case', '*.py'
 6 )
 7 
 8 for case in all_case:     # 循环将测试用例添加至用例集中
 9     print(case)
10     suite.addTests(case)
11 
12 # 执行用例并生成报告
13 fw = open('report.html', 'wb')
14 runner = HTMLTestRunner.HTMLTestRunner(
15     stream=fw, title='多个文件执行用例'
16 )
17 runner.run(suite)

 

posted @ 2018-01-03 22:02  银荡的那一夏  阅读(152)  评论(0编辑  收藏  举报