1. 程式人生 > >Robot Framework之ride的日誌不見了

Robot Framework之ride的日誌不見了

第一次F8執行時有日誌,但是後面再執行時,日誌不見了

遇到這種情況的時候,請開啟命令列輸入ride.py,按回車開啟RIDE,再次執行你的案例,如果還是有上面圖中不出現日誌的情況,請回到命令列介面檢視一下是否有報錯資訊(很多RIDE有關的問題都可以這樣來發現):

可以看到這裡報了一個UnicodeDecodeError,具體原因不曉得,推測是和報告裡出現了某些特定字元,0xb2是什麼不太清楚,因為我這邊沒出現過這樣的情況,所以無法確認具體是什麼字元.

從報錯日誌找問題,很顯然不太適合去utf-8.py這裡去做改動,因為這是個比較公共的庫了,那麼找到前一處報錯,是在Python27\Lib\site-packages\robotide\contrib\testrunner下的testrunner.py檔案的第400行pop方法裡的這一句:

return result.decode('UTF-8')

那我們進入這個目錄:

D:\Python\Lib\site-packages\robotide\contrib\testrunner

用Python的IDLE開啟testrunner.py,其他工具最好是Python常用的IDE,避免用文字工具改的縮排有問題,如果你改完後發現報錯資訊是IndentationError: unexpected indent,通常就是縮排有問題。

在原始碼檔案裡找到這個pop函式,可以看到出錯的那行語句:

加個try catch:

注意try是和for對其的,這裡的程式碼如下:

try:

result=result.decode('UTF-8')

exceptUnicodeDecodeError:

pass

return result

主要作用就是判斷出現了UnicodeDecodeError的異常的時候,直接用pass過濾,然後不做decode,直接return result,當然如果沒有異常,那麼原先的decode邏輯已經做了,所以可以解決掉前面日誌不見的問題。

替換後,刪除testrunner.pyc檔案然後重新開啟RIDE,可恢復正常。