2017-08-21 35 views
0

在我的單元測試中,有一個頁面要求特權庫的使用。當我的單元測試運行時,這個允許對話框出現在屏幕上,即使我所有的單元測試都完成了,它也不會消失。當UI測試嘗試運行時,它們不會導致此對話框。在單元測試之前有什麼方法可以運行UI測試嗎?如何在Xcode期間關閉系統對話框UITest

+0

都在談論,詢問用戶是否允許訪問照片庫中的系統對話框? – joern

+0

是的。系統對話框卡在屏幕上。 – Thornaci

回答

0

所以你真正的問題是在運行UITests時擺脫系統對話框。在UnitTests之前運行UITests不會改變一件事情,因爲那時系統對話框會在UITest期間彈出。

您可以關閉這樣的對話框(在你的UITest):

addUIInterruptionMonitor(withDescription: "「RemoteNotification」 Would Like to Send You Notifications") { (alerts) -> Bool in 
    if(alerts.buttons["Allow"].exists){ 
     alerts.buttons["Allow"].tap(); 
    } 
    return true; 
} 
XCUIApplication().tap() 

您,是因爲上面的代碼駁回,要求進行許可發送推送通知系統警報,以更改說明。

在測試觸發系統對話框之前,此代碼出現非常重要。您可以在啓動應用程序之後並在測試執行其他任何操作之前將其放入測試函數中。

0

如果您正在使用的XCode 9,你能直接對話互動:

let systemAlerts = XCUIApplication(bundleIdentifier: "com.apple.springboard").alerts 
if systemAlerts.buttons["Allow"].exists { 
    systemAlerts.buttons["Allow"].tap() 
} 

``