2016-07-06 12 views
1

SeleniumとPythonでテストケースを実行しています。これらのテストのHTMLテストレポートを生成したいと思います。誰もが興味を持っていると思われる場合に備えて、このリソースを私にとっては、http://tungwaiyip.info/software/HTMLTestRunner.htmlのように見つけましたが、このエラーが発生しています。TypeError:write()引数はバイトではなく、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にはが必要であり、bytesオブジェクトではないことが必要です。 the documentation clarifiesとして、str.encodestrオブジェクトをbytesオブジェクトに変換します。 self.stream.write(output.encode('UTF-16'))の代わりに、688行をself.stream.write(output)に変更する必要があります。

python2/3の非互換性により、エラーが増える可能性が非常に高いことに注意してください。

関連する問題