2016-07-06 157 views
1

所以我使用Selenium和python運行測試用例,並且我想爲這些測試生成HTML Test報告。我發現這個資源應該爲我做,http://tungwaiyip.info/software/HTMLTestRunner.html萬一任何人感興趣似乎真的很好,但我不斷收到此錯誤。TypeError:write()參數必須是str,而不是字節,UTF-16

File "facebook.py", line 21, in <module> 
HTMLTestRunner.main() 
File "C:\Users\kporika\AppData\Local\Programs\Python\Python35-32\lib\unittest\main.py", line 94, in __init__ 
self.runTests() 
File "C:\Users\kporika\PycharmProjects\Partha\HTMLTestRunner.py", line 816, in runTests 
unittest.TestProgram.runTests(self) 
File "C:\Users\kporika\AppData\Local\Programs\Python\Python35-32\lib\unittest\main.py", line 255, in runTests 
self.result = testRunner.run(self.test) 
File "C:\Users\kporika\PycharmProjects\Partha\HTMLTestRunner.py", line 631, in run 
self.generateReport(test, result) 
File "C:\Users\kporika\PycharmProjects\Partha\HTMLTestRunner.py", line 688, in generateReport 
self.stream.write(output.encode('UTF-16')) 
TypeError: write() argument must be str, not bytes 

的測試報告生成的代碼是在這裏https://github.com/tungwaiyip/HTMLTestRunner/blob/master/HTMLTestRunner.py創作者的GitHub頁面我該如何解決?

ps我正在運行python版本3.5,如果有幫助。

+1

你有什麼試過,結果是什麼?請閱讀如何提出一個好問題的幫助主題。您需要研究自己的問題,查找代碼示例等,並編寫自己的代碼來解決問題。如果你做了所有這些,但仍然無法解決問題,那麼請回過頭來編輯你的問題,並從你做的研究,你試過的代碼,結果是什麼......任何錯誤信息等等中添加筆記。 – JeffC

回答

3

HTMLTestRunner是一個python2模塊。 Python3區分strbytes對象,而python2有unicodestr

如錯誤消息所述,第688行需要str而不是bytes對象。如the documentation clarifiesstr.encodestr對象轉換爲bytes對象。而不是self.stream.write(output.encode('UTF-16')),您需要修改第688行至self.stream.write(output)

請注意,由於python2/3不兼容,很可能會有更多錯誤。

相關問題