How to speed up UI test cases in Xcode? How to speed up UI test cases in Xcode? ios ios

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()