Ios 如何更改在Xcode UI测试(XCUIEST)中获取快照所需的时间?

Ios 如何更改在Xcode UI测试(XCUIEST)中获取快照所需的时间?,ios,xcode,xcode-ui-testing,Ios,Xcode,Xcode Ui Testing,我正在做一些性能实验,我的Xcode UI测试一直出现这个错误,因为没有出现新的UI测试语句: UITesting Failure - Failed to get snapshot within 15.0s 如何将此15.0s变量更改为更长的变量?是否有一些配置或设置可以更改?我认为这是不可能的。苹果对任何应用程序的启动时间有20秒的系统限制,如果启动时间超过20秒,你的应用程序将被终止 因为用户界面测试需要引导你的应用程序,苹果公司给了自己5秒钟的时间来完成所有的设置。所以基本上你有15秒的

我正在做一些性能实验,我的Xcode UI测试一直出现这个错误,因为没有出现新的UI测试语句:

UITesting Failure - Failed to get snapshot within 15.0s

如何将此15.0s变量更改为更长的变量?是否有一些配置或设置可以更改?

我认为这是不可能的。苹果对任何应用程序的启动时间有20秒的系统限制,如果启动时间超过20秒,你的应用程序将被终止

因为用户界面测试需要引导你的应用程序,苹果公司给了自己5秒钟的时间来完成所有的设置。所以基本上你有15秒的时间来启动你的应用程序


因为不可能覆盖系统的20秒限制,所以也不可能覆盖XCTest的15秒限制。

您可以使用期望分配任意时间来运行任何测试用例。您只需在15.0秒过去之前创建一个额外的期望值,并根据需要多次重复此过程。下面是一个简短的代码示例来说明:

var timeToDelay = 60.0
repeat {
    let delay = min(13.0, timeToDelay)
    timeToDelay -= delay
    let date = Date().addingTimeInterval(delay)
    let predicate = NSPredicate(format: "now() > %@", argumentArray: [date])
    self.expectation(for: predicate, evaluatedWith: [], handler: nil)
    self.waitForExpectations(timeout: 14.0, handler: nil)
} while timeToDelay > 0
在看到测试失败之前将其放置,并用所需的额外时间量(以秒为单位)替换
timeToDelay