2017-01-26 79 views
17

有沒有人有經驗和固定的:XCTests未能在模擬器啓動應用間歇

XCtests沒有間斷在模擬器UI測試(XCUI)推出的應用程序。 我正在運行fastlane,不同的測試似乎無法通過每次測試。

OSX:10.12.3 的iOS模擬器:10.0 的XCode 8.2.1 FASTLANE 2.11.0

試圖通過增加設置和發佈在我的測試之間有3秒的睡眠來修復它,但它仍會出現,也許不是經常但仍...

UI測試失敗 - 失敗嘗試啓動 : 錯誤域= FBSOpenApplicationServiceErrorDomain代碼= 1 no.something.bb.debug「打開請求 ‘’失敗「。 的UserInfo = {NSLocalizedDescription =打開 「no.something.bb.debug」 請求失敗,NSLocalizedFailureReason =請求 通過服務代理(SBMainWorkspace),用於拒絕原因:忙 ( 「應用程序」 no.something.bb的.debug 「被安裝或卸載, 和不能發動」)。,BSErrorCodeDescription = RequestDenied, NSUnderlyingError = 0x6080002598f0 {錯誤 域= FBSOpenApplicationErrorDomain代碼= 6「應用 「no.something.bb.debug」 被安裝或卸載,並且不能被 發射。「的UserInfo = {BSErrorCodeDescription =忙, NSLocalizedFailureReason =應用程序 「no.something.bb.debug」 是 安裝或卸載,並不能發動。}}}

+0

找到更多的細節是否你的UI測試工作,當你在Xcode中運行它,而不是直接從FASTLANE運行呢? – HardikDG

+0

@HardikDG在我的情況下使用的XCode總是成功在本地機器上測試,但使用的XCode服務器上的Mac Mini的運行時,每個測試有大約3%的機會,它就會失敗。由於我們有超過200個UI測試,所以在服務器上的構建幾乎總是失敗。 (我們在2周1個成功的版本) –

+0

機器升級到SSD並允許5個故障去除大部分錯誤,有時仍然會我們看到他們,但不是經常...(只允許5次嘗試沒有幫助,但升級+重試的組合)。 –

回答

4

我經歷了同樣的問題。我發現這裏有一個開放的喇叭。在評論中,我發現了一個我在實現重試的函數中實現的提示。

參數數組是一個枚舉值數組,其基類型爲String。我將其用於應用參數。

不幸的是,這仍然沒有充分證明。在我的情況下,失敗的數量大幅下降,但並沒有消失。

var app: XCUIApplication = XCUIApplication() 
public func tryLaunch<T>(_ arguments: [T], _ counter: Int = 10) where T: RawRepresentable { 
    sleep(3) 
    XCUIApplication().terminate() 
    sleep(3) 

    app = XCUIApplication() 
    app.launchArguments = arguments.map { $0.rawValue as! String } 
    app.launch() 
    sleep(3) 
    if !app.exists && counter > 0 { 
     tryLaunch(arguments, counter - 1) 
    } 
} 

以上函數包含在https://github.com/evermeer/UITestHelper

+0

看到https://github.com/lionheart/openradar-mirror/issues/16226和https://openradar.appspot.com/29735288 –

+1

的最佳解決方案,即使它沒有充分證明@Edwin。似乎已經減少'錯誤域= FBSOpenApplicationServiceErrorDomain代碼= 1的量「的請求,要求打開」 com.apple.test。SomeTest-Runner「'我得到了,謝謝 – JJacquet