昨天打開Robot Framework的時候發現有新版本 RIDE 1.7.3.1 可以升級,直覺這版號也跳滿大的,由於RIDE自從安裝使用以來沒更新過,問題頗多且界面醜醜的,所以一時心動就下了升級它的決定,這可需要很大的勇氣,天曉得會不會升一升整個Robot Framework 就跟著壞了?

  果然,過程中還是遭遇到一些python套件版本不相容的問題,但pip給他隨便亂try還是成功把新版RIDE界面打開了,但隨即而來的問題才是真正的令人頭大,那就是RIDE編輯之後竟然不能存檔,每次Control+S時就會發生[Errno 13] 錯誤:PermissionError: [Errno 13] Permission denied ….

  原本直覺以為這是我那奇怪的D:槽有時候會莫名奇妙鎖我的資料讀寫權限所致,所以大攪特攪我的D:槽權限設定,後來發現怎麼開權限都會有這個存檔錯誤,於是償試把專案換到E:槽去以為這是開大絕一定可以解決問題,結果RIDE每到存檔時依然報[Errno 13] Permission denied 錯誤,這才恍然大悟這有可能不是我那資料夾權限問題導致,結果攪的我現在資料夾開放的權限亂七八糟的,如果我是駭客,一定非駭這台電腦不可……..()

  那到底原因是什麼呢? 不能存檔那我的Automation Test Case是要寫個毛呀? 後來也不知道哪來的靈感,我去看到了Command Line Window有寫了相關的Python Exception:結果是IO寫入的Error,我也注意到 f= io.open(path, ‘w’, encoding=encoding, newline=newline) 這一行敘述,就是這一行引發終極Error的。

  咦?怎會有newline這字眼出現?於是我在想會不會是因為我新版RIDEnewline 寫入格式預設是錯誤的?因為我在看新界面時有注意到它可以設定new line 的寫入格式,預設是 “Native” ,但還有其它選項,一個是WindowsCRLF,另一個是Unix LF ,我就在想是不是這邊不能用Native,而是要改成WindowsNew Line格式?

  所以我就到 RIDE -> Tools -> Preferences 中設定 Line Separator CRLF,然後……………………… 就莫名奇妙可以存檔了……………. 此時心中真是忍不住大喊:  Whaaaaaaaaaaaaaaaat Theeeeeeeeeeeeeee Fucccccccccccccccccccck!

  只能說真是謝天謝地了!天曉得我哪來的靈感竟然可以知道問題出在這裡,這可是上網找root cause完全八竿子打不著邊的,可以說[Errno 13] 這個錯誤大家發生問題的原因都千奇百怪大不相同,能給我就這樣矇到那真的可謂是我家祖宗幫我燒了很多好香,所以我才能及時矇到答案,真是謝天謝地!

 

2019321日星期四

arrow
arrow

    jackterrylau 發表在 痞客邦 留言(0) 人氣()