2015-11-13 99 views
5

我有幾個UI測試,我可以成功地單獨或分組。我最終將測試分解成特定的課程並以這種方式運行。我遇到的問題是Xcode按字母順序執行UI測試,而不是爲了寫入/顯示。任何想法如何解決這個問題?Xcode 7 UI測試訂單

謝謝

+0

對於我的測試,我寫了幾個輔助函數。 'loginIfNeeded()'檢查僅在登錄頁面上的標籤,然後登錄用戶。類似的'logoutIfNeeded()'可用於任何需要從登錄屏幕啓動的測試。 – JMFR

+0

@JMFR我是新來編寫UI測試用例。你能幫我一下,或者給我一些例子如何編寫幫助函數。謝謝 – Urmi

回答

7

一個好的測試套件不應該依賴於特定的順序執行。如果你的是,你可能會有一些測試污染。我會添加通用的初始化邏輯(例如,將用戶登錄到)相關測試的setUp()方法。或者創建一個輔助方法並在類之間共享。這與每次測試重新啓動應用程序相結合時,應該使測試的順序無關緊要。

+0

謝謝你的迴應。我對這一切都很陌生,目前對代碼的使用經驗很少。我確實找到了你的博客,並且它已經幫了你。 – Sandmaster

+0

儘管這基本上是正確的,但我使用UI測試來快照UI並獲得可視化簽名,所以它們的順序對我來說依然很重要。 –

5

XC測試是令人難以置信的錯誤。有時候,似乎風的方向或地球自轉的速度將決定你是否得到一個隨機失敗。一個補丁修復我發現,有些緩解這些令人沮喪的問題是,如果你叫這是你拆解()函數:

XCUIApplication().terminate() 

凡XCUIApplication()是你正在運行的應用程序。

+2

「令人難以置信」是輕描淡寫 – CommaToast

+0

我笑了,但後來我哭了))),因爲我的測試失敗不一致,所以我也無法正確調試它,因爲它需要時間甚至重現失敗..... f %#k中 –