xcode - 如何更改 XCode 模拟器中的客户端配置以进行自动化 UI 测试

标签 xcode xcode-ui-testing

使用 XCTest 编写 UI 测试后,我尝试在模拟器的“设置”应用程序中更改构建点的服务器。这使得自动化测试在正确的地方运行。有没有办法通过辅助功能和 UI 测试代码来做到这一点?

How can I change this URL?

编辑:@oletha 的答案很完美。这是我在 Objective-C 中使用的解决方案:

我将启动参数设置为 configServer=@"URL"

for (NSString *launchArgument in [[NSProcessInfo processInfo] arguments]) { if ([launchArgument hasPrefix:@"configServer"]) { return [launchArgument ComponentsSeparatedByString:@"="].lastObject; } } }

最佳答案

您可以在启动应用程序之前通过设置 launchArguments 属性向应用程序发送启动参数。然后,您可以将应用程序设置为在启动期间读取启动参数,并在使用该启动参数启动模拟服务器时设置模拟服务器的 URL。

// test code
let app = XCUIApplication()
app.launchArguments = ["UITESTS"]
app.launch()

// app code
if NSProcessInfo.processInfo().arguments.contains("UITESTS") {
    // set different server URL
}

您可能需要在应用委托(delegate)的 applicationDidFinishLaunching 中添加 URL 切换代码。

关于xcode - 如何更改 XCode 模拟器中的客户端配置以进行自动化 UI 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41043159/

相关文章:

swift - 如何让 Xcode 在混合应用程序的 webview 中查找元素?

ios - 将音频和视频流式传输到 IOS 应用程序

ios - 通过 IF 语句在按钮上显示图像

iphone - 签名者无效错误

ios - 使用 Material Library 中的 ErrorTextField 进行 Xcode UI 测试

ios - UI 测试失败 - 获取元素快照失败错误 -25201

cocoa - 在运行时确定程序段(HEADER、TEXT、CONST 等)

ios - 如何在 UITests 的 `detailTextLabel` 中访问 `tableViewCell`?

xcode - UI XCTest, View 中存在的元素

ios - Xcode UI 测试手册截图