在用XCTest编写UI测试之后,我试图在模拟器中的Settings应用程序中将构建点更改为服务器。这是在正确的地方运行的自动化测试。有什么方法可以用可访问性和UI测试代码来做到这一点吗?
编辑:@oletha的答案是完美的。下面是我在目标C:中使用的解决方案。
我将启动参数设置为configServer=@"URL"
for (NSString *launchArgument in [[NSProcessInfo processInfo] arguments]) { if ([launchArgument hasPrefix:@"configServer"]) { return [launchArgument componentsSeparatedByString:@"="].lastObject; } }
发布于 2017-02-10 10:26:48
您可以通过在启动应用程序之前设置launchArguments
属性向应用程序发送一个启动参数。然后,您可以设置您的应用程序在启动时读取启动参数,并在使用该启动参数启动时设置模拟服务器的URL。
// test code
let app = XCUIApplication()
app.launchArguments = ["UITESTS"]
app.launch()
// app code
if NSProcessInfo.processInfo().arguments.contains("UITESTS") {
// set different server URL
}
您可能希望在应用程序委托上添加applicationDidFinishLaunching
中的URL切换代码。
发布于 2016-12-08 18:34:17
根据Xcode 8.2,您不能在您自己的应用程序的目标之外自动化UI,因此您不能与设备上的Settings应用程序交互。我觉得这是一个错误,并建立了一个雷达(http://www.openradar.me/27802551),您可能也需要这样做。
我想您要更改的URL存储在您的首选项中的某个地方。如果是这样的话,您可以在使用SBTUITestTunnel执行测试时动态地更改它。这是一个第三方库,允许通过UI测试与您的应用程序交互,启用网络模拟和监视、数据注入等等。对于您的用例,它允许轻松地更新NSUserDefaults
。
https://stackoverflow.com/questions/41043159
复制相似问题