2016-12-22 4 views

Antwort

0

Ich glaube nicht, dass das möglich ist. Apple hat ein Systemlimit von 20 Sekunden für das Starten einer App, wenn es länger dauert, bis Ihre App beendet wird. Source

Da UI-Tests Bootstrapping Ihrer App erfordern, hat Apple sich ~ 5 Sekunden Zeit gegeben, um alle Einstellungen vorzunehmen. Im Wesentlichen haben Sie also eine 15-Sekunden-Grenze, um Ihre App zu starten.

Da es nicht möglich ist, die 20-Sekunden-Grenze des Systems zu überschreiben, ist es auch nicht möglich, die 15-Sekunden-Grenze von XCTest zu überschreiben.

2

Sie können die Erwartungen verwenden, um einen beliebigen Zeitraum für die Ausführung eines Testfalls zuzuweisen. Sie erstellen einfach eine zusätzliche Erwartung, bevor 15.0s vergangen sind, und wiederholen Sie diesen Vorgang so oft wie nötig. Hier ist ein kurzes Codebeispiel veranschaulichen:

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 

Platz dieses Rechts, bevor Sie das Testversagen und ersetzen timeToDelay mit der Höhe der zusätzlichen Zeit, die Sie benötigen (in Sekunden) zu sehen.

Verwandte Themen