python单元测试框架unittest学习笔记五--参数化parameterized模块及HTML测试报告生成

参数化:

测试用例中使用参数化的场景:

多个测试用例代码相同,只是测试数据不同,预期结果不同,可以把多个测试用例通过参数化的技术合并为一个测试用例

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Richard_Kong
 4 import unittest
 5 from parameterized import parameterized
 6 
 7 
 8 def sum(a, b):
 9     return a + b
10 
11 
12 lis1 = [(1, 2, 3), (4, 6, 10), (1, 19, 20)]
13 
14 
15 class my_test(unittest.TestCase):
16     @parameterized.expand(lis1)
17     def test_mytest(self, a, b, c):
18         self.assertEqual(sum(a, b), c)

HTML测试报告生成:

1、把HTMLTestRunner.py拷贝到项目目录下

2、在代码中导入HTMLTestRunner模块

3、调用HTMLTestRunner(stream = f,title = "文件名")

​   第一个参数使用open打开的文件,文件扩展名一定是HTML

​   open打开文件的时候,用wb,不用指定字符集

4、调用runner的run方法执行测试套件

5、关闭open打开的文件

注意这里的HTMLTestRunner.py使用pycharm无法直接安装,需要手动下载并直接保存到python3.7的Lib目录中

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Richard_Kong
 4 import unittest
 5 from HTMLTestRunner import HTMLTestRunner
 6 
 7 import test_unittest02
 8 
 9 # suite = unittest.TestLoader().discover("./","test_unittest02.py")
10 suite = unittest.TestSuite()
11 suite.addTest(unittest.makeSuite(test_unittest02.my_test))
12 f = open("test.html","wb")
13 htmlrunner = HTMLTestRunner(stream=f,title="myfirst")
14 htmlrunner.run(suite)
15 f.close()

Unittest官方文档参考:

https://docs.python.org/zh-cn/3/library/unittest.html

posted @ 2021-07-29 18:01  GalaxyStar  阅读(220)  评论(0编辑  收藏  举报