我正在尝试为我的 iOS Swift 应用程序编写 UI 测试,以便使用 Fastlane 自动进行屏幕截图。我的应用程序在其 AppDelegate 中请求推送通知权限didFinishLaunchingWithOptions
,因此当应用程序首次在新设备上启动时(由于我将在每次运行 UI 测试之间擦除模拟器),我希望权限为在我可以与应用程序的其余部分交互之前允许。所以我关注了这篇文章,这是我的 UI 测试代码:
import XCTest
class Fastlane_Snapshots: XCTestCase {
let app = XCUIApplication()
override func setUp() {
continueAfterFailure = false
setupSnapshot(app)
app.launch()
addUIInterruptionMonitor(withDescription: "System Dialog") {
(alert) -> Bool in
print("Interruption running")
let button = alert.buttons.element(boundBy: 1)
if button.exists {
button.tap()
}
return true
}
app.tap()
}
override func tearDown() {
}
func testSnapshots() {
}
}
但是永远不会触发 UI 监视器代码。当我开始记录该testSnapshot
方法时,我看到警报出现在模拟器中但它没有被解除,并且当我在 UI 中断监视器回调的第一行设置断点时,它没有到达那里。
知道我可能忘记了什么吗?