zoukankan      html  css  js  c++  java
  • Python3中使用HTMLTestRunner报No module named 'StringIO'解决方法

    今天在学习使用HTMLTestRunner生成测试报告时遇到一个报错,如图所示:

    网上搜索了下“No module named 'StringIO'”解决方法,原来我用的是Python 3.X版本,而下载的HTMLTestRunner适用于Python2.X(下载链接:http://tungwaiyip.info/software/HTMLTestRunner.html)

    于是这里再做次“搬运工”,了解下如何在Python3中使用HTMLTestRunner报No module named 'StringIO'解决方法。

    修改HTMLTestRunner.py文件:

    (1)第94行,将import StringIO修改成import io

    (2)第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

    (3)第631行,将print >>sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))

    (4)第642行,将if not rmap.has_key(cls): 修改成if not cls in rmap:

     

    (5)第766行,将uo = o.decode('latin-1')修改成uo = e

    (6)第772行,将ue = e.decode('latin-1')修改成ue = e

     

    HTMLTestRunner修改后,重新运行脚本发现一切正常并在相应路径下生成了测试报告,如图所示:

    执行脚本代码参考:

     1 # coding=utf-8
     2 
     3 import unittest
     4 import os
     5 import HTMLTestRunner
     6 
     7 
     8 # 用例路径
     9 case_path = os.path.join(os.getcwd(), "case")
    10 # 报告存放路径
    11 report_path = os.path.join(os.getcwd(), "report")
    12 
    13 def all_case():
    14     discover = unittest.defaultTestLoader.discover(case_path,
    15                                                     pattern="test*.py",
    16                                                     top_level_dir=None)
    17     print(discover)
    18     return discover
    19 
    20 if __name__ == '__main__':
    21     # 返回实例
    22     # runner = unittest.TextTestRunner()
    23     # runner.run(all_case())
    24 
    25     # html报告文件路径
    26     report_abspath = os.path.join(report_path, 'result.html')
    27     fp = open(report_abspath, "wb")
    28     runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
    29                                            title=u'自动化测试报告,测试结果如下: ',
    30                                            description=u'用例执行情况: ')
    31 
    32     # 调用add_case函数返回值
    33     runner.run(all_case())
    34     fp.close()
  • 相关阅读:
    Linux基础-文件管理
    Linux基础-命令概述
    linux基础--目录介绍
    Cookie和Session(session过程和设置进程外session)
    [CSP-S2020]儒略日 题解
    [NOI2020]制作菜品 题解
    [NOI2020]命运 题解
    CSP-S2020 游记
    2020年泉州市信息学国庆模拟赛(提高组) 题解
    luogu4241 采摘毒瘤 题解
  • 原文地址:https://www.cnblogs.com/mrgavin/p/8489252.html
Copyright © 2011-2022 走看看