zoukankan      html  css  js  c++  java
  • 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)

    四、生成结果图:

     

  • 相关阅读:
    access导入报错 请求筛选模块被配置为拒绝超过请求内容长度的请求
    win10装回win7。PE下把原来的系统盘格掉,再安装hdd,重启就好了
    sql语句Order by 报错列名不明确
    C#字符串长度判断
    Struts2中数据封装机制
    Struts2中的页面跳转
    Struts2访问Servlet API的三种方式
    Struts2的动态Action实现
    Struts2基本概念
    javaweb开发之EL表达式
  • 原文地址:https://www.cnblogs.com/lizhe860/p/9041693.html
Copyright © 2011-2022 走看看