2016-07-06 3 views
1

Selenium과 Python을 사용하여 테스트 케이스를 실행하고 있으며 이러한 테스트를 위해 HTML 테스트 보고서를 생성하려고합니다. 나는 누군가를 위해 그것이 흥미있는 경우에 대비하여 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 제가 도움이된다면 파이썬 버전 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 비 호환성 때문에 오류가 발생할 가능성이 높습니다.

관련 문제