使用 HTMLTestRunner.py

HTMLTestRunner.py python 2版本

下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

教程:http://www.wtoutiao.com/p/zedDKR.html

使用时,先建立一个”PyDev Package“,将下载下来的HTMLTestRunner.py文件拷贝在该目录下。

例子:testcase5_dynamic.py

import unittest
from dev.widget import Widget

class WidgetTestCase(unittest.TestCase):
    def setUp(self):
        self.widget=Widget()

    def tearDown(self):
        self.widget.dispose()
        self.widget=None

    def testSize(self):
        self.assertEqual(self.widget.getSize(), (40,40), "Wrong")

    def testResize(self):
        self.widget.resize(100, 100)
        self.assertEqual(self.widget.getSize(), (100,100), "Wrong")

html_report.py:

#coding:utf-8

from lib import HTMLTestRunner
import unittest
from testcase5_dynamic import WidgetTestCase

if __name__==‘__main__‘:
    suite=unittest.makeSuite(WidgetTestCase)
    filename=‘D:\\myreport.html‘
    fp=file(filename,‘wb‘)
    runner=HTMLTestRunner.HTMLTestRunner(fp,title=u‘my unit test‘,description=u‘This is a report test‘)
    runner.run(suite)

Run的时候,需要使用Python Run,使用Python unit-test跑测试生成不了myreport.html,目前还不知道为什么。

有时候,不会立即生成D:\\myreport.html,我们可以自己先建立一个空的myreport.html,这样再运行之后打开就会看到报告内容。

HTMLTestRunner.py 的python3 版本

参考:http://bbs.chinaunix.net/thread-4154743-1-1.html

由于 HTMLTestRunner.py 原本就是python2版本,目前还没找到python3版本,所以需要我们自己修改 HTMLTestRunner.py 文件。

1. 修改的地方

问题一:No module named StringIO

解决方法:

第94行引入的名称要改,改成import io,539行要改成self.outputBuffer = io.BytesIO()

问题二:AttributeError: ‘dict‘ object has no attribute ‘has_key‘

解决方法:

到642行去做修改,if not rmap.has_key(cls): 需要换成 if not cls in rmap:

问题三:‘str‘ object has no attribute ‘decode‘

解决方法:

python3 里面对字符的操作中,decode已经拿掉了。

定位一下,报在了772行,ue = e.decode(‘latin-1‘),直接改成 ue = e ,另外766还有类似的uo = o.decode(‘latin-1‘),改成 uo=o ;

问题四 :TypeError: can‘t concat bytes to str

解决方法:

那么778行的内容escape(uo+ue) ,将uo变成str类型即可,可修改该处内容为escape(uo.decode(‘utf-8‘)+ue)

 

问题五:TypeError: unsupported operand type(s) for >>: ‘builtin_function_or_method‘ and ‘RPCProxy‘

解决方法:

python2 和 python3 的print是很不同的,那么在3中,print 后面是不会跟>> 这样的,所以到631行,把print的语句修改掉,原来是print >>sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime), 可改成 print (sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime))

2. 保存

修改后对HTMLTestRunner.py 保存一下。

3. 调用语句更改

python3 里面打开文件使用 open,不要再去用file了。

即 fp = file(filename,‘wb‘)替换成 fp = open(filename,‘wb‘);

关闭该文件可用fp.close()

 

备注: 改动之后,中文也不会乱码。

时间: 2024-10-15 16:19:59

使用 HTMLTestRunner.py的相关文章

unittest测试驱动之HTMLTestRunner.py

原文出自:http://www.wtoutiao.com/p/zedDKR.html 对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略.单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起来比较费力,很显然,控制台日志的输出的信息并不是个好的注意,那么好的注意应该是生成html页面的测试报告,这样的报告看起来更加清晰,庆幸的是unittest的单元测试库扩展的HTMLTestRunner.py,可以

python3-如何正常使用HTMLTestRunner.py,生成自动化测试报告

其实HTMLTestRunner.py是基于python2开发的,为了使其支持python3环境,需要对其的部分内容进行修改.下面我们通过编辑器打开HTMLTestRunner.py文件(编辑器可以选择python IDE 或者pycharm.sublime,个人觉得最好选择后两种之一,这样让你更好的定位到修改的内容) #第94行 import StringIO 修改为: import io #第539行 self.outputBuffer = StringIO.StringIO() 修改为:

python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决

python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法: 参考:http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 修改后下载地址:

python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决【转载】

原文转自:http://bbs.chinaunix.net/thread-4154743-1-1.html python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法: 参考:http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址:http:/

python3 中引用 HTMLTestRunner.py 模块的注意事项

HTMLTestRunner.py支持python2中运行,如果在python3.6.2中引用HTMLTestRunner.py模块,需要做一下更改: 1.更改HTMLTestRunner.py模块中的代码 1.更改StringIO模块导入方式:  2.self.outputBuffer=StringIO.StringIO()  改为self.outputBuffer= StringIO() 3.python3.6.2字典无has_key方法: 4.str没有decode方法,去掉decode转

python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法:

全文转载至:http://www.cnblogs.com/testyao/p/5658200.html python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法: 参考:http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址:http://t

python HTMLTestRunner.py

Mac下HTMLTestRunner.py存放路径: -/anaconda/lib/python3.6/site-packages/HTMLTestRunner.py 已经更改,python3可以直接使用 """ A TestRunner for use with the Python unit testing framework. It generates a HTML report to show the result at a glance. The simplest

Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )

1.说明 在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE ))中简单的写明了,如何生产测试报告,但是使用IDLE很麻烦,而且在实际的项目中也不方便,所以,查了很多资料来研究如何在PyCharm中生成测试报告,故此记录一下(命名什么的不规范就不要纠结了). 2.步骤 第一步:下载HTMLTestRunner.py 参考:Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使

python3.x的HTMLTestRunner.py文件

"""A TestRunner for use with the Python unit testing framework. Itgenerates a HTML report to show the result at a glance. The simplest way to use this is to invoke its main method. E.g. import unittest    import HTMLTestRunner ... define yo