2015-02-04 171 views
1

我有一個寫在UIAutomation中的自動測試腳本。如果我從儀器運行它,所有測試都會通過。如果我從命令行運行它,則其中一個測試用例將失敗,並導致測試腳本運行終止。儀器和命令行的不同測試結果

失敗的測試用例是關於觸發UIAActivityIndictor,然後顯示一個警報窗口。

我在網上做了一些搜索,人們都說命令行比儀器快。有時,您需要確保UIAElement有效。然而,在我的情況下,在這個測試案例中,似乎命令行丟失了應用程序的層次結構UIAElements。 logElementTree的結果只是目標和應用程序,根本沒有窗口。用戶界面似乎凍結。

任何建議將有所幫助。

+0

你試過在失敗的行之前添加一個延遲嗎?在我的測試中,我不得不特意放慢一些部分,因爲自動化工具足夠快,可以在轉換狀態下捕捉應用程序,就像對話仍在消失時一樣。控制檯可能會加速代碼的速度,導致這類問題。 – Braains

+0

是的,我添加了延遲。但問題是,測試失去了整個視圖層次結構。 – hqfking

+0

我注意到儀器有很多不穩定的行爲,但我所有的都是與時間相關的問題,所以我很希望它也能爲你說話! – Braains

回答

1

我面臨類似的問題。當UI被完全凍結時,這意味着應用程序被放入無限循環。在我的情況下,產量巨大的NSLog是原因。要檢查: 1)在你的腳本中的某個點放上非常大的睡眠 2)運行腳本 3)將xcode附加到應用程序:debug->附加到進程 - >你的應用程序的進程 4)等到凍結髮生。確保它手動 5)在xcode按暫停執行 6)現在你可以在stacktrace中看到應用程序掛在哪裏

相關問題