unittest单元测试生成HTML测试报告

前言:

  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)

四、生成结果图:

 

原文地址:https://www.cnblogs.com/lizhe860/p/9041693.html