2015-02-06 63 views
1

我想我錯過了一些明顯的東西。我遵循快速通道指示找到here 。我沒有做任何額外的配置。葫蘆/黃瓜不認識標籤

我對我在項目中設置的視圖標籤上的簡單測試運行cucumber命令。它失敗了...然後我在終端執行:

calabash-ios console 
start_test_server_in_background 
query("view") 

我看不到我在項目中設置的視圖層次結構中的標籤。如果我隨後重新構建我的項目(在控制檯中)並再次運行query(「view」),我會看到之前缺少的標籤。這裏發生了什麼?爲什麼我必須在控制檯中構建項目以查看項目的當前狀態?控制檯和黃瓜命令(可能不/不會)識別這些標籤的原因是什麼?

+0

你確定你正在爲同一個目標,你開始模擬器/控制檯?如果您分享如何構建以及如何運行控制檯,這將有所幫助。啓動控制檯時,您可以同時包含apk位置以及要使用的模擬器。像這樣APP_BUNDLE_PATH =構建/產品/調試-iphonesimulator/myapp-cal.app DEVICE_TARGET ='iPhone 5s(7.1模擬器)'葫蘆-ios控制檯 – Lasse 2015-02-06 12:19:05

+0

我確定爲同一個目標建設。我打開01_launch.rb文件並將APP_BUNDLE_PATH設置爲葫蘆目標的派生數據包路徑,然後是我嘗試過。在執行此操作之前,我在ProjectName-cal方案下的XCode中構建項目。我運行控制檯時未按照您的指定設置束路徑或設備目標;我試過了,在設置了APP_BUNDLE_PATH之後,它似乎能夠在上下文中工作;運行cucumber命令時出現錯誤,但是在場景之後顯示:行:「沒有將nil隱式轉換爲String(TypeError)」 – Morkrom 2015-02-06 23:42:24

+0

它可能與calabash上的錯誤相關https://github.com/葫蘆/ run_loop/issues/102至少錯誤報告聽起來很相似。 – Lasse 2015-02-09 02:20:30

回答

0

從Xcode 6開始,instruments不再在模擬器上重新安裝應用程序。我最好的猜測是你在模擬器上構建並運行了一個不包含標籤的版本。然後你在ObjC/Swift端添加標籤。您可能已經構建了該項目,但未運行。那麼,你可能已經跑了 - 我會在一會兒。當你去控制檯,你希望能夠查詢標籤。

我們不清楚instruments進程是否應該在目標模擬器上重新安裝.app。有時似乎,但大多數情況並非如此 - 這不是我有興趣理解的行爲。

很容易發現自己正在測試一個陳舊的二進制文件。

在我的工作流程中,我通常在運行測試之前重置模擬器。

$ bundle exec calabash-ios sim reset 

這迫使instruments安裝我的應用程序的最新版本。

通常,我使用構建腳本來確保我使用的是正確版本的.app。