我尝试使用以下代码禁用 UITests 中的动画:
let app = XCUIApplication()
app.launchEnvironment = ["DISABLE_ANIMATIONS": "1"]
我也尝试过:
UIView.setAnimationsEnabled(false)
但是当我在模拟器上运行 UITests 时它不会禁用动画。
是因为我使用的是 SwiftUI 吗?
我想要禁用的动画是从一个 SwiftUI 视图到另一个视图的视图转换。这是我对转换进行编码的方式:
NavigationLink(destination: MapView(), isActive: $viewModel.isDataLoaded) {
EmptyView()
}
使用 SwiftUI 时是否有另一种方法可以禁用 UITests 中的动画?
需要在主应用程序中显式(通过代码)完成,因为 UITests 在不同的进程中运行,即。应该是这样的
struct YourApp: App {
init() {
let env = ProcessInfo.processInfo.environment
if env["DISABLE_ANIMATIONS"] == "1" { // << here !!
UIView.setAnimationsEnabled(false)
}
}
var body: some Scene {
// ... scene here
}
}
然后就可以使用了
let app = XCUIApplication()
app.launchEnvironment = ["DISABLE_ANIMATIONS": "1"]
使用 Xcode 13.3 / iOS 15.4 进行测试