前言:
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML的 测试报告。
一、下载HTMLTestRunnerNew.py文件:
下载链接:https://pan.baidu.com/s/1wqZIWN08h_cvvh0qorQI1g
二、安装:
将下载的文件保存到Python安装目录Lib下:
如:D:Python35Lib
在执行测试用例的时候引入,引入的方式: from HTMLTestRunnerNew import HTMLTestRunner
三、单元测试源码如下:
1)定义被测试函数:加法、减法、乘法、除法。
mathfunc.py
# 创建测试方法
def add(a,b):
print('测试加法功能')
return a+b
def minus(a,b):
print('测试减法功能')
return a-b
def multi(a,b):
print('测试乘法功能')
return a*b
def divide(a,b):
print('测试除法功能')
return a/b
2)针对项目编写测试用例,使用基本的断言语句assert来对结果进行验证,其执行顺序按照函数名以ASCII码进行。
编写规则:
- 测试文件以test_开头(以_test结尾也可以)
- 测试类以Test开头,并且不能带有 __init__ 方法
- 测试函数以test_开头
- 断言使用基本的assert即可
test_mathfunc.py
import unittest # 导入单元测试框架 from mathfunc import * #导入需要测试的方法 # 创建测试用例 class TestMath(unittest.TestCase): #继承TestCase类 def test_add(self): self.assertEqual(3, add(1,2)) #设置断言 self.assertNotEqual(5, add(3,2)) def test_minus(self): self.assertEqual(3, minus(5,2)) self.assertNotEqual(2,minus(3,2)) def test_multi(self): self.assertEqual(6,multi(2,3)) self.assertNotEqual(5,multi(2,3)) def test_divide(self): self.assertEqual(3,divide(6,2)) self.assertNotEqual(2,divide(6,2)) if __name__ == '__main__': unittest.main()
3)加载用例并执行,以HTML测试报告展现:
run.py
import unittest import HTMLTestRunnerNew # 输出html测试结果方法使用 from test_mathfunc import TestMath #导入用例模块 import os # ---加载测试用例------------ suite = unittest.TestSuite() #创建实例 测试套件/测试用例的容器 loader = unittest.TestLoader() #创建实例 #直接加载某个测试 模块 里面的所有用例 suite.addTest(loader.loadTestsFromTestCase(TestMath)) # 测试结果输出在Html with open(os.getcwd() + '/testResult_report.html','wb+') as file: runner = HTMLTestRunnerNew.HTMLTestRunner(file,title='单元测试报告',description='单元测试',tester='lixhaozhe') runner.run(suite)
四、生成结果图: