之前在團隊實施過 calabash-cucumber 自動化測試,最近專案又在使用。其中遇到一些問題,在此總結。
cucumber有乙個配置檔案,在執行cucumber執行案例時,首先會呼叫此檔案。
在cucumber執行的目錄,即 features 目錄同級,建乙個.config(隱藏檔案,在終端裡使用命令)目錄。config目錄下,新建乙個cucumber.yml檔案 將如下內容copy 至此檔案儲存:
default: -r features -r features_ios_support --tags ~@wip --tags ~@manual --tags ~@ignore --tags ~@stg --tags ~@android_only device_target='iphone 6 (8.1 simulator)'
可以使用如下命令檢視本機裝置列表:
➜ ~ instruments -s devices
known devices:
rigel.xu (8.4) [cac0899307dfb6f6bec507fcad641fe6b76ca3c9]
ipad retina (8.4 simulator)
[acfde3e0-
85f8-
4dc3-a6a5
-7537769f0ce3]
iphone 6 (8.1 simulator)
[11ca78d9-
395d-
4fbe-
9347
-6b3cc20b75ac]
iphone 6 plus (8.4 simulator)
[85c3a98f-bdbb
-4bbf-a485
-d2301e4ed5ba
]
有的工程可能會直接把其它工程做為乙個庫匯入進來, 這時執行cucumber時就會報如下錯誤:
found multiple .xcodeproj directories:
/users/***/aaa.xcodeproj
/users/***/bbb.xcodeproj
which project contains
the target of
set the xcodeproj variable
to specify the correct .xcodeproj directory.
# examples
(runloop::multiplexcodeprojerror)
./features/support/01_launch.rb:28:in `before'
這是因為cucumber檢測到在工程目錄下有兩個工程檔案, 這時也需要修改.yml 檔案, 在每個設定的後面新增xcodeproj字段, 指定你需要測試的工程:
xcodeproj="../你的工程.xcodeproj"
或者,在每次執行cucumber的時候, 帶上xcodeproj引數:
xcodeproj="你的工程.xcodeproj" cucumber
使用scoll(「webview」) 是無法滾動 webview 的,在 calabash 的 googlegroup 里查到可以使用 swipe 來滾動,親測可用swipe :up, offset:外 webview 操作某一元素可以使用如下方式:
touch
("webview css:'img#banner1'")
css之後是 css 的選擇器,為使我們的測試指令碼寫起來方便,建議在web 頁面開發的時間為不同的控制項使用不同的 id 。
安裝完 calabash-cucumber 後,可以在對應 ruby 的 gems 裡找到相應版本的 calabash-cucumber,如:
ruby-
2.2.2/gems/calabash-cucumber
-0.14
.3
bin
docdylibs
features
features-skeleton
liblicense
scripts
staticlib
calabash 的所有東西,都在這裡了,核心原始碼在 lib/calabash-cucumber 目錄下,有時如果不知道一些命令,或者查不到解決方法,可以直接看原始碼。
附:calabash官網
google group
calabash-ios wiki
專案實戰 面試實際問題總結
cookie是儲存在本地終端的資料。cookie由伺服器生成,傳送給瀏覽器,瀏覽器把cookie以k v形式儲存到某個目錄下的文字檔案內,下一次請求同一 時會把該cookie傳送給伺服器。由於cookie是存在客戶端上的,所以瀏覽器加入了一些限制確保cookie不會被惡意使用,同時不會佔據太多磁碟空...
thrift 實戰總結
return 實踐enum returncode struct valuegetresult service find something在實踐的時候,我發現它給valuegetresult 多生成了乙個變數 bool isset.value 所以thrift 並不是直接幫我們把查詢到的value返...
git實戰總結
git教程 pro git github 託管 1 建立本地庫目錄並初始化 mkdir gitrepos cd gitrepos git init 初始化本地庫 2 從遠端庫拉取 git clone url 例如 3 修改 並提交 git pull 從遠端庫更新 根據提示修改衝突檔案中的 vi re...