seo優(yōu)化銷售seo網(wǎng)上培訓(xùn)課程
目錄
一. 下載HTMLTestRunner
二. 修改HTMLTestRunner
1. 修改內(nèi)容
2. 修改原因
一. 下載HTMLTestRunner
下載報(bào)告模板地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下載模塊:
二. 修改HTMLTestRunner
將修改后的模塊放到python安裝目錄下的../Python37路徑Lib目錄下?
下載的HTMLTestRunner.py是針對(duì)python2寫的,所以針對(duì)python3需要適當(dāng)更改其內(nèi)容
1. 修改內(nèi)容
第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, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))
第766行,將uo = o.decode('latin-1')修改成uo = e
第775行,將ue = e.decode('latin-1')修改成ue = e
2. 修改原因
問題一:No module named StringIO
原因:python 3 中 沒有 StringIO 這個(gè)模塊。這里我們需要使用io 這個(gè)模塊來代替。
解決方法:
第94行引入的名稱要改,從 import StringIO 改成import io。
相應(yīng)的,539行 self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer = io.BytesIO()
問題二:AttributeError: 'dict' object has no attribute 'has_key'
原因:python 3 字典類型的object 已經(jīng)不支持 has_key函數(shù),我們需要使用in 來進(jìn)行遍歷。
解決方法:
定位到642行,if not rmap.has_key(cls): 需要換成 if not cls in rmap:
問題三:'str' object has no attribute 'decode'
原因:python3 里面對(duì)字符的操作中,decode已經(jīng)拿掉了。
解決方法:
定位到772行,把 ue = e.decode('latin-1') 直接改成 ue = e 。
另外766還有類似的uo = o.decode('latin-1'),改成 uo=o ;
問題四 :TypeError: can't concat bytes to str
原因:定位一下,報(bào)在了778行的內(nèi)容escape(uo+ue) 。這是因?yàn)槲覀兩厦娼ouo賦值的時(shí)候,走的是else流程,uo被賦值的是bytes類型的值。 而bytes類型不能直接轉(zhuǎn)化為str類型。所以我們需要在前面給uo賦值的時(shí)候先將bytes類型轉(zhuǎn)換為 str類型。
解決方法:
修改768行的 uo = o ,直接改成 uo = o.decode('utf-8') 。
另外 774還有類似的 ue = e, 改成 ue = e.decode('utf-8')。
問題五:TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and 'RPCProxy'
原因: python3 不支持 print >> sys.stderr 這種寫法,這里定義輸出流的話,采用print("This is print str",file=sys.stderr) 這種方式。
解決方法:
定位到631行,把print的語句修改掉,原來是print >>sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime), 可改成 print(' Time Elapsed: %s' % (self.stopTime-self.startTime),file=sys.stderr)
問題六:TypeError: 'str' does not support the buffer interface
原因:定位一下,問題出在118行,這里s是str類型,我們需要把傳過來的s轉(zhuǎn)化為bytes類型。
解決方法:
定位到118行,把 self.fp.write(s) 修改為 self.fp.write(bytes(s,'UTF-8')) 即可。
看了很多文章都說把HTMLTestRunner.py文件放置在python35下的lib文件夾下,結(jié)果我試了很多次,也沒有把HTMLTestRunner導(dǎo)入,運(yùn)行總是報(bào)錯(cuò)說沒有導(dǎo)入這個(gè)模塊。
解決方法:把HTMLTestRunner.py放置當(dāng)前的項(xiàng)目文件夾下。
?以下是我收集到的比較好的學(xué)習(xí)教程資源,雖然不是什么很值錢的東西,如果你剛好需要,可以評(píng)論區(qū),留言【777】直接拿走就好了
各位想獲取資料的朋友請(qǐng)點(diǎn)贊 + 評(píng)論 + 收藏,三連!
三連之后我會(huì)在評(píng)論區(qū)挨個(gè)私信發(fā)給你們~