0

我正在尝试为我的 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 中断监视器回调的第一行设置断点时,它没有到达那里。

知道我可能忘记了什么吗?

4

0 回答 0