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

然后解决问题!

posted @ 2018-04-28 09:45  彩笔杀手  阅读(2541)  评论(0编辑  收藏  举报