robotframework运行中断后或重复运行后,ride中经常会出现控制台不显示日志信息,主要原因是因为编码不支持中文的原因
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunnerplug
in.py", line 367, in OnTimer
self.OnProcessEnded(None)
File "C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunnerplug
in.py", line 334, in OnProcessEnded
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 0xca in position 0: invalid c
ontinuation byte
解决方法:
修改"C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py"文件pop方法中 “ return result.decode('UTF-8')”的“UTF-8”改成“gbk”,重启ride就可以了
def pop(self):
result = ""
for _ in xrange(self._queue.qsize()):
try:
result += self._queue.get_nowait()
except Empty:
pass
return result.decode('gbk')