HTMLTestRunner是Python标准库的unittest模块的扩展,无法通过pip安装;
py2解决方法:
从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py并将文件放到python2安装目录的Lib下,然后再次运行文件,可成功运行!
py3解决方法:
总结:
第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;
第775行,将ue = e.decode(‘latin-1‘)修改成ue = e;
第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime))
下面是踩坑过程:
从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py并将文件放到python3安装目录的Lib下,然后再次运行文件
在HTMLTestRunner的94行中,是使用的StringIO,但是Python3中,已经没有StringIO了。取而代之的是io.StringIO。所以将此行修改成import io
在HTMLTestRunner的539行中,self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
继续执行代码,发现报异常如下:
前往644行修改代码:if cls not in rmap
继续执行代码,又发现报异常如下:
前往769行修改代码: uo = e ; 同时将776行修改代码:ue = e
继续执行,发现还报异常:
前往633行修改代码:print (sys.stderr, '\nTime Elapsed: %s' % (self.stopTime - self.startTime))
再次执行,代码运行成功,无异常!