nel*_*LLA 6 xcode uitest swiftui
我尝试使用以下代码禁用 UITests 中的动画:
let app = XCUIApplication()
app.launchEnvironment = ["DISABLE_ANIMATIONS": "1"]
Run Code Online (Sandbox Code Playgroud)
我也试过:
UIView.setAnimationsEnabled(false)
Run Code Online (Sandbox Code Playgroud)
但是当我在模拟器上运行 UITests 时它不会禁用动画。
是因为我使用的是 SwiftUI 吗?
我想禁用的动画是从一个 SwiftUI 视图到另一个视图的视图转换。以下是我对转换进行编码的方式:
NavigationLink(destination: MapView(), isActive: $viewModel.isDataLoaded) {
EmptyView()
}
Run Code Online (Sandbox Code Playgroud)
使用 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
}
}
Run Code Online (Sandbox Code Playgroud)
然后就可以使用了
let app = XCUIApplication()
app.launchEnvironment = ["DISABLE_ANIMATIONS": "1"]
Run Code Online (Sandbox Code Playgroud)
使用 Xcode 13.3 / iOS 15.4 进行测试
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |