赞
踩
通过pip安装 HTMLTestRunne失败。则需要通过手动下载。
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载后,把HTMLTestRunner.py 文件复制到Python 安装路径下的lib文件夹中即可。
在python3中用HTMLTestRunner.py报importError“:No module named 'StringIO'解决办法
- 原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成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:
第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
- 第766行,将uo = o.decode('latin-1')修改成uo = e
-
- 第775行,将ue = e.decode('latin-1')修改成ue = e
*****************************************************************************************************************************************************
修改完HTMLTestRunner.py文件后,将此文件,放到pthon安装位置的lib目录 下,在使用的时候,import导入就可以使用
下边是使用示例:
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # @Time : 2021/4/1 17:12
- # @File : run_class.py
- import HTMLTestRunner
- import unittest
- # from test_class import TestMathMethod
- from unittest_study import test_class
-
- suite = unittest.TestSuite()#存储用例
- # 方法一:只执行一条用例,两个正数相加
- # suite.addTest
- # suite.addTest(TestMathMethod('test_add_two_positive'))
-
- # 方法二:TestLoader
- # 创建一个加载器
- loader = unittest.TestLoader()
- # 1)从测试类中去寻找用例,然后加载到suite中
- # suite.addTest(loader.loadTestsFromTestCase(TestMathMethod))
-
- # 2)从模块里去找用例,然后将模块下的用例添加至suite中
- # 会将test_class中的两个类都执行
- suite.addTest(loader.loadTestsFromModule(test_class))
-
- # 执行
- # 不带参数的时候,生成的测试报告会直接打印在控件台上
- # runner = unittest.TextTestRunner()
-
- # 带参数,会在生成指定的文件,并将报告输出到此文件中,有中文时,要设置encoding='UTF-8'
- # file = open("test.txt", "w+", encoding='UTF-8')
- # runner = unittest.TextTestRunner(stream=file, verbosity=2)
- # runner.run(suite)
- # file.close()
-
- # # 上下文管理器,会在执行结束后,自己去close文件,不需要手动去处理
- # with open("test.txt", "w+", encoding='UTF-8') as file:
- # runner = unittest.TextTestRunner(stream=file, verbosity=2)
- # runner.run(suite)
- # print(file.closed)
- import HTMLTestRunner
- # 上下文管理器,会在执行结束后,自己去close文件,不需要手动去处理
- with open("test_report.html", "wb") as file:
- # runner = unittest.TextTestRunner(stream=file, verbosity=2)
- runner = HTMLTestRunner.HTMLTestRunner(stream=file,
- verbosity=2,
- title='接口自动化测试报告,测试结果如下:',
- description="测试一下描述信")
-
- runner.run(suite)
-
-
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。