2013年2月15日 星期五

Jenkins + Unit Test by ios-sim

經過了一連串折騰,終於發現

原來之前已經半成功了!

只是jenkins  的使用者權限開錯了,導致跑不動 ios-sim

 

以下是整個的經過

1. 原本打算使用 octest 

    在 command line 下要執行

xcodebuild -workspace ??????.xcworkspace -scheme ?????Test -sdk iphonesimulator5.1 -configuration Debug TEST_AFTER_BUILD=YES clean build | ocunit2junit  

    (https://github.com/ciryon/OCUnit2JUnit)

     ?????Test  是一個特殊的scheme ,建立後且執行 Test

    但是這個在 ios 6 上遇到了問題

    iOS 6 有些簡化用的語法  ex : @{ xxx:ccc} = [NSDictionary dictionary…..]

    如果使用 -sdk iphonesimulator5.1  是不能建置的

    但是如果使用 -sdk iphonesimulator   似乎會有無法註冊的問題

    (http://longweekendmobile.com/2011/04/17/xcode4-running-application-tests-from-the-command-line-in-ios/) (http://www.raingrove.com/2012/03/28/running-ocunit-and-specta-tests-from-command-line.html)

    這裡我實驗了很久還是卡住

    (有可能問題與最後的解法是相同的....)

2.  後來決定不使用xcode原來呼叫simulator的方法

     改用 ios-sim   

     採用這篇的作法  http://9elements.com/io/index.php/continuous-integration-of-ios-projects-using-jenkins-cocoapods-and-kiwi/

 

    接著我就遇到了  

"Simulator session timed out.

    的問題

    https://github.com/phonegap/ios-sim/issues/5

    看了問題討論  似乎只要把  檔案一個位置就好了

    但是  因為現在在放假期間  我不太敢亂重開server 

    所以只好想想看要怎麼改他的使用者權限

    最後發現....

     因為我一直以來都是用  sudo launchctl load xxxxx

     如果用 sudo 的話,則好像會是用  root 開 jenkins  

     而他沒有  GUI的權限(?我猜測的… 如果有錯麻煩告知一下嚕@@)

     所以開不了  simulator  導致timeout

     所以我改用  user帳號  ssh 登入 server

     只執行   launchctl load xxxxx

     就可以正常的跑Unit Test了

 

 

 

 

沒有留言:

張貼留言