robotframework运行时后台报错UnicodeDecodeError
win10环境下报错:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 370, in OnTimer
self._test_runner.get_output_and_errors(self.get_current_profile())
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 250, in get_output_and_errors
stdout, stderr, returncode = self._process.get_output(), \
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 305, in get_output
return self._output_stream.pop()
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 400, in pop
return result.decode('UTF-8')
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 5: invalid start byte
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 370, in OnTimer
self._test_runner.get_output_and_errors(self.get_current_profile())
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 250, in get_output_and_errors
stdout, stderr, returncode = self._process.get_output(), \
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 305, in get_output
return self._output_stream.pop()
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 400, in pop
return result.decode('UTF-8')
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 279: invalid start byte
解决方案:在line400行报错utf8编码0xb2解码:无效
我们每次在修改了testrunner.py文件后一定要记得删掉testrunner.pyc文件,然后重新启动ride,不然等于白改~!
def pop(self):
result = ""
for _ in xrange(self._queue.qsize()):
try:
result += self._queue.get_nowait()
except Empty:
pass
return result.decode('UTF-8')
把UTF-8改成GBK
然后解决问题!