How to speed up UI test cases in Xcode?
Try setting this property when your UI tests run:
UIApplication.shared.keyWindow?.layer.speed = 100
Here's how I set it:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { if ProcessInfo.processInfo.arguments.contains("UITests") { UIApplication.shared.keyWindow?.layer.speed = 100 }}
And in my UI tests:
class MyAppUITests: XCTestCase { // MARK: - SetUp / TearDown override func setUp() { super.setUp() let app = XCUIApplication() app.launchArguments = ["UITests"] app.launch() }}
There's a few more handy tips in this blog post.
Another possibility is to disable animations at all:
[UIView setAnimationsEnabled:NO];
Swift 3:
UIView.setAnimationsEnabled(false)
Following @Mark answer, the Swift 3 version:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { if ProcessInfo.processInfo.arguments.contains("UITests") { UIApplication.shared.keyWindow?.layer.speed = 200 }}
On you ui test file:
override func setUp() { super.setUp() // Put setup code here. This method is called before the invocation of each test method in the class. let app = XCUIApplication() app.launchArguments = ["UITests"] app.launch()