zoukankan      html  css  js  c++  java
  • Python3和HTMLTestRunner生成html测试报告

    1、测试环境:

      Python3.5+unittest+HTMLTestRunner

    2、下载HTMLTestRunner.py文件

      下载地址 http://tungwaiyip.info/software/HTMLTestRunner.html
      右键单击保存至本地,放在Python的安装目录Lib文件夹下(我本地放在本目录下:D:setupPython35Lib)

    3、由于下载的HTMLTestRunner.py文件是基于Python2的,若适用于Python3则进行如下修改:

      第94行,将import StringIO修改成import io
      第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
      第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
      第766行,将uo = o.decode('latin-1')修改成uo = e
      第772行,将ue = e.decode('latin-1')修改成ue = e
      第631行,将print >> sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))

    4、以下3个py文件利用unittest、HTMLTestRunner生成html测试报告

    test.py 文件

     1 class Test():
     2     #初始化函数
     3     def __init__(self,a,b):
     4         self.a = a
     5         self.b = b
     6 
     7     #两个数相加
     8     def add(self):
     9         x = self.a+self.b
    10         return x
    11 
    12     #两个数相减
    13     def dele(self):
    14         y = self.a-self.b
    15         return y

    add_dele.py文件

     1 #coding=utf-8
     2 from test import Test
     3 import unittest
     4 
     5 class Test_test(unittest.TestCase):
     6     #下面三引号对类的注释会显示在报告的表格中
     7     '''数字计算'''
     8     def test_shuzi(self):
     9         #下面三引号对方法的注释会显示在报告的表格中
    10         '''两个数字相加以及两个数字相减'''
    11         # 对test文件中的Test类初始化
    12         shuzi = Test(7, 3)
    13         self.assertEqual(shuzi.add(),10)
    14         self.assertEqual(shuzi.dele(),4)
    15     def test_liangmethod(self):
    16         '''两数字相加的2倍 加上 两个数字相减的2倍'''
    17         #对test文件中的Test类初始化
    18         liangshuzi = Test(6,5)
    19         t = liangshuzi.add()*2 + liangshuzi.dele()*2
    20         self.assertEqual(t,24)

    test_add_dele.py文件

     1 #coding=utf-8
     2 from HTMLTestRunner import HTMLTestRunner
     3 import unittest
     4 import add_dele
     5 import time
     6 import os
     7 
     8 #构建测试集
     9 suit = unittest.TestSuite()
    10 #测试集加入add_dele文件中被调用的方法。格式suit.addTest(文件名.类名("方法名"))
    11 suit.addTest(add_dele.Test_test("test_shuzi"))
    12 suit.addTest(add_dele.Test_test("test_liangmethod"))
    13 
    14 #定义存放测试报告的路径及文件名
    15 #我定义的路径是:当前路径+存放报告的专有目录Report+文件名(文件名是当前时间+report.html)
    16 curent_dirc=os.path.dirname(os.path.realpath(__file__))
    17 report_dirc = "Report"
    18 now = time.strftime("%Y%m%d-%H%M%S")
    19 report_name = curent_dirc+report_dirc+"\"+now+"report.html"
    20 fp = open(report_name,"wb")
    21 runner = HTMLTestRunner(stream=fp,
    22                         title="测试一下报告生成",
    23                         description="用两个数字的相加减来练习")
    24 runner.run(suit)
    25 fp.close()

    5、文件及html报告架构:

    6、生成的html报告样式:

  • 相关阅读:
    回答自己的提问
    <构建之法>13——17章的读后感
    <构建之法>10,11,12章的读后感
    <构建之法>8,9,10章的读后感
    作业5.2
    【作业报告】作业5 四则运算 测试与封装 5.1 改进版
    作业 5.1
    阅读
    做汉堡
    阅读《构建之法》
  • 原文地址:https://www.cnblogs.com/zhengyihan1216/p/11549820.html
Copyright © 2011-2022 走看看