Calabash實戰問題總結

2021-07-05 04:48:12 字數 2430 閱讀 5289

之前在團隊實施過 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...