在使用vs2010的codedui來做自己的自動化測試框架
中介紹了我將使用ironruby作為指令碼語言來編寫自動化測試指令碼,但是當時在使用ironruby編寫指令碼過程中發現了乙個編碼導致的問題,在這裡給大家介紹一下,大家在編寫指令碼時一定要主要指令碼檔案的編碼。
我在rb檔案中呼叫了c#的microsoft.visualstudio.testtools.uitesting.dll的查詢按鈕並單擊的功能,但是總是報錯,說找不到此控制項,但是我在c#**中編寫類似**是沒有問題。出現問題後上網搜尋了一下,但是畢竟資源不多,沒有任何結果,於是上ironruby的codeplex**提交了乙個bug,見:encode error?
具體描述如下
i want to use visualstudio uitest todomy auto ui test, but i don
't find window and button.
( attachment
ismicrosoft.visualstudio.testtools.ui
testing.dll )
code:
require
"microsoft.visualstudio.testtools.uitesting.dll
"include microsoft::visualstudio::testtools::uitesting::wpfcontrolsw =
wpfwindow.
neww.searchproperties[
"name"]
="你好"
;puts w.searchproperties[
"name"]
result: 脛茫潞脙
expect : 你好
public執行後,顯示的不是」你好「兩個字,而是幾個亂碼。class
}
我上網搜了一些和字元編碼相關的內容,很多都是介紹字元編碼轉換的,如result = iconv.iconv("gb2312","utf-16",a) ,我在rb指令碼和c#都試過了多個字元轉換的情況,發現仍舊不能正確解析。
這時我突然想起上週遇到此問題後我給公司的乙個ruby高手請教過的這個問題,以下是郵件主要內容:
我提出了乙個假設,是不是檔案編碼導致的?
既然提出了假設,接下來就是驗證我的假設了。由於我對字元編碼不熟悉,於是又上網搜尋了一些,了解了以下utf-8,gb2312等,而c#是支援unicode的,所以我接著又試了以下幾步:
再次執行後,發現竟然一切又是那麼美好!
這個問題前後花了我一天時間去解決,總的來說問題相對來說不難,但是需要對ruby的字元編碼有所了解,而我以前沒有注意到這個也會引起問題,從解決這個bug過程中,可以有以下幾點與大家分享一下:
遇到陌生問題而自己沒有思路時,求助高手是最快速便捷的方法
解決問題方法之一就是提出假設再驗證假設
使用新技術時,最好系統學習一下,例如我就是花了半天時間看了一下《ironruby unleashed.pdf》一書才知道ir.exe的 引數-kkcode了,否則我更改了檔案編碼也未必會想到增加ir.exe的引數
知識點:檔案編碼直接影響ruby的字元編碼
周金根[ ]
都是 IDENTITY惹的禍
前不久系統伺服器出現了一次不大不小事故,資料庫乙個表的資料不翼而飛,這個表雖然算不上頂級重要的表,但也算的上是個很重要的表,大家趕緊查是什麼把這個表的資料刪的只剩下180多條資料.為什麼還有180多條資料存在哪?真是挺讓人納悶的,但發現這180多條資料中有乙個共性,那就是那個不該為空的字段變成了空值...
都是埠惹的禍
這幾天公司搬家,所以忙的blog好久都沒有更新,關鍵是沒有什麼技術上的事情,都不知道寫點什麼,呵呵。周四到週日一直在乙個客戶那邊進行產品的實施,整個過程自然比較有趣,對於我來說最重要的就是認識到了靈活程式設計的重要。我們的程式需要幾個通訊埠,其中乙個是1433用來連線sqlserver資料庫,很多的...
都是埠惹的禍
這幾天公司搬家,所以忙的blog好久都沒有更新,關鍵是沒有什麼技術上的事情,都不知道寫點什麼,呵呵。周四到週日一直在乙個客戶那邊進行產品的實施,整個過程自然比較有趣,對於我來說最重要的就是認識到了靈活程式設計的重要。我們的程式需要幾個通訊埠,其中乙個是1433用來連線sqlserver資料庫,很多的...